2

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

它在 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,但似乎没有帮助。有任何想法吗?

4

2 回答 2

1

通过将 URL 更改为使用 HTTPS 并使用 API v1.1,它适用于 iOS6 和 iOS7。

于 2013-10-29T11:36:00.427 回答
0

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

您的 URL 应更改为以下内容:

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

有关更多信息,请参阅Twitter API 常见问题解答:API v1 的退役意味着什么?

于 2013-10-29T17:56:07.573 回答