4

我知道以前有人问过类似的问题(我已经阅读了大部分),但我还没有找到一个好的答案。

我需要使用 iOS 的 Twitter 登录/注册用户。我有这个网站,我已经这样做了(www.Meer.li),现在我也需要在应用程序中这样做。

我知道我可以访问 iOS 设备上的 twitter 用户名并查看它是否在我的应用程序的数据库中,但是当用户尚未注册 www.Meer.li 时我该如何处理?

对不起,如果这是一个微不足道的问题,但我有点困惑我应该使用 iOS 社交框架还是使用一些 OAuth 库(Restkit 等)。

希望有人可以指导我回答的方向,甚至是一个例子!

需要澄清:

非常感谢您的指导。似乎有道理。可以肯定的是,这就是我理解的步骤:

1: 用户点击 twitter 按钮登录

2:我们获取用户的推特账号并询问他想使用哪个账号

3:我们向 twitter 发送一个请求,其中包含您自己的应用程序的密钥和秘密以及用户的 twitter 信息

4:如果收到良好的响应,请将收到的信息发送到您的 web 应用程序上创建用户的方法,并从那里向 twitter 请求剩余的用户信息

5:让用户玩得开心

这对吗?为什么以前没有人很好地记录这个流程?听起来应该很容易做到的事情。

4

4 回答 4

4

注意: iOS 5+ 会为您处理所有 OAuth 和繁重的工作,因此仅当您支持较旧的操作系统版本时才使用此答案。

由于 Twitter.framework 已被弃用,因此有一个很好的 WWDC 2012 演示文稿关于如何执行此操作。登录查看此链接:http ://adcdownload.apple.com/wwdc_2012/wwdc_2012_session_pdfs/session_306__integrating_with_facebook_twitter_and_sina_weibo.pdf


我只需要自己做。

到目前为止,我找到的最佳答案是Sean Cook 的 TWReverseAuthExample。(我分叉了他的 github 项目,然后将其归结为我在TWReverseAuthSubModule中作为基于 ARC 的应用程序所需的子模块,剥离了示例项目等,因为我知道我可以在原始 github 上回到它资源。)

基本上,如果您按照示例进行操作,它将按照Twitter API 网页上列出的步骤进行。

最后,您需要做的是创建看起来很像肖恩示例的代码。

我最初开始使用的网络上还有其他资源,这些资源允许我“使用 twitter 登录”,这些资源可以在嵌套的 UIWebView 中进行授权,甚至可以去 safari,然后通过专用的应用程序 URL 返回应用程序方案。如果您需要做 iOS 5.x 之前的工作,这些可能会有所帮助。

但上面的示例充分利用了原生 iOS twitter 支持,并且也适用于 iOS 6。

于 2012-11-15T22:27:37.083 回答
1

在 iOS5 中使用 Twitter 框架提示登录警报:在 iOS5 中使用 Twitter 框架 提示登录警报?

在 iOS6 中使用 Twitter 框架提示登录警报:iOS6 的 Twitter 框架如何通过应用程序中的设置登录

于 2012-12-19T11:39:53.273 回答
0

如果您的目标是 iOS 5.x 之前的版本,则需要使用 UIWebView 进行 OAuth 登录。你可以从这里跳过我的回答......

但如果针对 iOS 5.0+,我会推荐 iOS Twitter 框架。正如 Twitter 的官方文档所说。Apple 整合 Twitter 是有原因的,我敢打赌,更多的人正在使用 iOS 5.x 或 6.x。在这种情况下,这只是一个简单的分步过程,所有 API 都可用,不需要密钥或秘密。

  1. 获取用户推特账号的账号实例
  2. 请求用户访问可用 Twitter 帐户的权限
  3. 获取可用帐户
  4. 发出经过身份验证的请求

那么问题可能是:如果用户没有在设备上登录,你可能需要提醒他去设置并做登录的东西,或者使用“棘手”的方式来显示登录:

- (void)showTwitterSettings{
TWTweetComposeViewController *tweetViewController = [[TWTweetComposeViewController alloc] init];

// Create the completion handler block.
[tweetViewController setCompletionHandler:^(TWTweetComposeViewControllerResult result)
 {
     [self dismissModalViewControllerAnimated:YES];
 }];

// Present the tweet composition view controller modally.
[self presentModalViewController:tweetViewController animated:YES];
//tweetViewController.view.hidden = YES;
for (UIView *view in tweetViewController.view.subviews){
    [view removeFromSuperview];
}

}

于 2012-11-16T07:34:12.897 回答
0

你可以使用 twitter 提供的反向认证方法,你需要你的服务器支持这个。

这是链接:https ://dev.twitter.com/docs/ios/using-reverse-auth

于 2012-11-16T03:33:17.433 回答