【问题标题】:Can't get Twitter OAuth callback authentication to work in Cocoa application无法让 Twitter OAuth 回调身份验证在 Cocoa 应用程序中工作
【发布时间】:2011-10-26 22:33:44
【问题描述】:

我正在使用 MGTwitterEngine 和 OAuthConsumer 框架。并且主要遵循UsingOAuthConsumer 的说明。

为了使用 OAuth 并且不让用户处理基于 oob PIN 的身份验证,您需要启用对应用程序的回调。要在桌面(或 iOS)应用程序上执行此操作,您需要设置一个自定义 URI 方案,该方案将转到应用程序中的事件处理程序。我得到了这个工作,并通过在 Safari 中使用自定义 URI 对其进行了测试。我的应用程序确实打开并调用了正确的方法。到目前为止,一切都很好。

要为 Twitter 执行此操作,您需要在 Twitter 开发站点上的应用程序设置中指定回调 URI。问题从这里开始。 Twitter 不允许使用非标准 URI。所以“myapp://oauth/”是不允许的。它必须是 http 或 https URI。我引用的所有网站都说在这里放置一个占位符,并在请求令牌请求中覆盖。好的,所以我在这里为我的网站设置了一个虚拟 URL。现在实现覆盖。以下是其中一个 cmets 的代码,说明如何做到这一点:

OAMutableURLRequest *request = [[OAMutableURLRequest alloc] initWithURL:url
                                                               consumer:consumer
                                                                  token:nil   
                                                                  realm:nil  
                                                      signatureProvider:nil]; 

[request setOAuthParameterName:@"oauth_callback" withValue:@"callbackurl:"];

当我添加第二个方法调用时,对 twitter 的请求现在失败了。 NSURLErrorDomain 错误 -1012 或类似的东西(我忘了写下数字)。

我尝试了多种方法,但始终无法覆盖回调 URL。有没有人有一个可靠的方法来做到这一点?目前,我已将应用程序更改为使用 OOB PIN 身份验证方法,但我肯定想为用户删除这个不必要的步骤。

谢谢!

【问题讨论】:

  • 这里是具体的错误信息:failRequestToken: 'Error Domain=NSURLErrorDomain Code=-1012 "操作无法完成。(NSURLErrorDomain error -1012.)" UserInfo=0x5c43c30 {NSErrorFailingURLKey=@987654322 @, NSErrorFailingURLStringKey=api.twitter.com/oauth/request_token, NSUnderlyingError=0x5c44ca0 "操作无法完成。(kCFErrorDomainCFNetwork error -1012.)"}'
  • 有人有任何提示吗?甚至指向讨论此问题的其他论坛?

标签: cocoa oauth twitter-oauth


【解决方案1】:

我最终放弃了 OAuthConsumer 框架,转而使用了 Google GTMOAuth 框架。这很好用。

【讨论】:

  • 你有什么提示oauth_callback参数有什么问题吗?如果这个参数不是oob,我就不能让它工作。
猜你喜欢
  • 2014-03-25
  • 2013-03-08
  • 1970-01-01
  • 2011-06-18
  • 2011-06-10
  • 1970-01-01
  • 2015-06-10
  • 2011-05-01
  • 1970-01-01
相关资源
最近更新 更多