我正在开发一款在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,但似乎没有帮助。有什么想法吗?
答案 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?