8

我正在尝试通过在我的应用程序中使用 twitter 唱歌来获取用户的联系方式。我在 github 上发现了这个项目,看起来非常好。我只遇到一个问题。如果我使用来自 twitter 的新应用程序消费者密码和消费者密钥代码运行它,它会给我一个错误:

Error Domain=NSURLErrorDomain Code=-1012 "The operation couldn’t be completed. (NSURLErrorDomain error -1012.)" UserInfo=0x6898e80 {NSErrorFailingURLKey=https://api.twitter.com/oauth/request_token, NSErrorFailingURLStringKey=https://api.twitter.com/oauth/request_token, NSUnderlyingError=0x68980e0 "The operation couldn’t be completed. (kCFErrorDomainCFNetwork error -1012.)"}

控制台中的输出是:

2013-01-16 17:55:24.367 DMTwitterOAuth[3411:c07] current status = Prompt for user data and request token to server
2013-01-16 17:55:24.371 DMTwitterOAuth[3411:c07] current status = Requesting token for current user's auth data...
2013-01-16 17:55:25.433 DMTwitterOAuth[3411:c07] current status = Token received from server

在我收到警报视图后,它说它遇到了一个NSURLErrorDomain.

另一方面,如果我使用来自另一个 twitter 应用程序的一些其他代码运行它,它可以工作,为我提供有关用户的所有详细信息。我只是不明白为什么某些键有效,而另一些则无效。

4

6 回答 6

6

错误代码-1012kCFURLErrorUserCancelledAuthentication。这应该意味着在某处调用某些代码[sender cancelAuthenticationChallenge:]以响应身份验证质询。这可能是 DMTwitterOAuth 内部的代码,但也有可能是 Apple 自己的 URL 加载系统内部的代码。

于 2013-04-09T08:46:00.313 回答
1

确保您的 twitter应用程序访问设置适合您尝试执行的操作。如果您尝试发布推文,您可能需要读取和写入权限。

有关更多信息,请参阅应用程序模型文档

于 2013-04-18T19:12:46.137 回答
1

它也可能只是请求标头中的错误身份验证数据。

于 2014-02-10T16:40:19.703 回答
0

访问下面的 url 它解决了通常不是特定于这个 twitter 上下文的问题。它会给你一些想法

https://stackoverflow.com/a/17920301/730807

我希望这有帮助..

于 2013-07-29T09:28:58.427 回答
0

据 Twitter 称,该修复程序已在 SDK 版本 1.14.1 中生效。

于 2016-01-24T23:35:42.480 回答
0

我最近发现这个问题发生在以前 Twitter 登录工作的项目中。出于这个原因,我认为这是由于 iOS 的变化或 Twitter 功能的升级。

主要问题之一是几乎不可能重现此问题,这里有一个非常有趣的 Twitter 社区博客在讨论它:https ://twittercommunity.com/t/ios-twitter-kit-1-10-1- twtrloginbutton-responds-with-1012-error/52766

Twitter 工作人员正在尝试解决此问题,但无法重新创建它以查看问题所在。

问题似乎是用户的 Twitter 帐户已与他们的设备断开连接。这意味着 Twitter Auth Helper 无法获取您的详细信息以正确登录。

解决此问题的方法是进入设置 -> Twitter,然后单击您的 Twitter 帐户名称。对我来说,这提示我重新输入密码,因为该帐户当前未连接。非常令人沮丧且很难找到,因为在您点击您的 Twitter 帐户之前没有任何迹象。

我发现在尝试使用 Firebase 使用 Twitter 帐户登录时应用了此解决方案。

于 2015-11-25T04:49:40.847 回答