在iOS7上使用令牌创建的Twitter帐户失败

时间:2013-10-29 10:36:01

标签: ios twitter ios7 acaccount

我正在开发一款在iOS6 / 7上运行的应用,并在Twitter上发布自定义视图。为了改善用户体验,如果没有可用的系统帐户,我会向用户显示输入其凭据的webview ,按照ACAccountCredential.h中的建议将其存储在ACAccountStore中并使用它来发布。< / p>

它在iOS6上运行良好,但iOS7共享上的失败,错误为401 。奇怪的是,帐户在ACAccountStore中保存没有错误,并且可以被Twitter应用程序用于在Twitter上阅读和发布(没有进一步登录),因此我假设帐户(令牌和令牌机密)工作正常

SLRequest *postRequest = nil;
NSURL *url = [NSURL URLWithString:@"http://api.twitter.com/1/statuses/update.json"];
NSDictionary *content = @{@"status":self.textToShare};
postRequest = [SLRequest requestForServiceType:SLServiceTypeTwitter
requestMethod:SLRequestMethodPOST
URL:url
parameters:content];

[postRequest setAccount:self.twitterAccount];
[postRequest performRequestWithHandler:completionHandler];

我也尝试过使用API​​ v1.1,但似乎没有帮助。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

它适用于iOS6和iOS7,方法是将URL更改为使用HTTPS并使用API​​ v1.1。

答案 1 :(得分:0)

iOS6和iOS7都会出现此问题,因为/1/statuses/update.json现已弃用。此外,从API的v1.1开始,您必须对所有请求使用HTTPS。

您的网址应更改为以下内容:

NSURL *url = [NSURL URLWithString:
              @"https://api.twitter.com/1.1/statuses/update.json"];

有关详细信息,请参阅Twitter API FAQ: What does the retirement of API v1 entail?