我正在尝试通过在我的应用中使用Twitter进行搜索来获取用户的联系详细信息。我在github上找到了this项目,看起来非常好。我只遇到一个问题。如果我使用来自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应用程序中的其他代码运行它,它可以工作,向我提供有关用户的所有详细信息。我只是无法理解为什么它可以使用某些键,而对于其他一些键却没有。
答案 0 :(得分:6)
错误代码-1012
为kCFURLErrorUserCancelledAuthentication
。这应该意味着某些代码称为[sender cancelAuthenticationChallenge:]
,以响应身份验证质询。这可能是DMTwitterOAuth中的代码,但也可能是它在URL加载系统中的Apple自己的代码。
答案 1 :(得分:1)
确保您的Twitter application access settings适合您要执行的操作。如果您尝试发布推文,则可能需要读取和写入权限。
有关详细信息,请参阅Application Model docs。
答案 2 :(得分:1)
请求标头中的身份验证数据也可能是错误的。
答案 3 :(得分:0)
答案 4 :(得分:0)
我最近发现此问题发生在之前Twitter登录正在运行的项目中。出于这个原因,我认为这是由于iOS的变化或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帐户登录时应用此解决方案。
答案 5 :(得分:0)
根据推特,SDK版本1.14.1中的the fix is live。