我需要使用SLrequest访问直接消息。我使用Twitter的Reverse oAuth获得了oAuthToken和oAuthToken Secret。现在我需要知道如何从https://api.twitter.com/1.1/direct_messages.json网址中获取直接消息。我已经尝试添加oAuthToken和oAuthTokenSecret部分SLRequest,但我得到相同的错误,“此应用程序不允许访问或删除您的直接消息”。 oAuthToken和oAuthTokenSecret有什么用?如何让直接消息适用于应用程序?我已将应用程序的访问级别更改为“读取,写入和直接消息”。请帮我解决问题。
答案 0 :(得分:6)
以下是如何访问iOS默认Twitter帐户的直接消息。
此示例使用STTwitter库,该库在内部使用SLRequest进行阶段2,并使用自定义制作的阶段1请求。
NSString *CONSUMER_KEY = @"";
NSString *CONSUMER_SECRET = @"";
STTwitterAPI *twitter = [STTwitterAPI twitterAPIWithOAuthConsumerName:nil
consumerKey:CONSUMER_KEY
consumerSecret:CONSUMER_SECRET];
[twitter postReverseOAuthTokenRequest:^(NSString *authenticationHeader) {
STTwitterAPI *twitterAPIOS = [STTwitterAPI twitterAPIOSWithFirstAccount];
[twitterAPIOS verifyCredentialsWithSuccessBlock:^(NSString *username) {
[twitterAPIOS postReverseAuthAccessTokenWithAuthenticationHeader:authenticationHeader
successBlock:^(NSString *oAuthToken,
NSString *oAuthTokenSecret,
NSString *userID,
NSString *screenName) {
STTwitterAPI *x = [STTwitterAPI twitterAPIWithOAuthConsumerName:nil
consumerKey:CONSUMER_KEY
consumerSecret:CONSUMER_SECRET
oauthToken:oAuthToken
oauthTokenSecret:oAuthTokenSecret];
[x verifyCredentialsWithSuccessBlock:^(NSString *username) {
[x getDirectMessagesSinceID:nil count:10 successBlock:^(NSArray *messages) {
// ...
} errorBlock:^(NSError *error) {
// ...
}];
} errorBlock:^(NSError *error) {
// ...
}];
} errorBlock:^(NSError *error) {
// ...
}];
} errorBlock:^(NSError *error) {
// ...
}];
} errorBlock:^(NSError *error) {
// ...
}];
答案 1 :(得分:-2)
使用反向身份验证无法做到这一点。反向身份验证基本上允许您在与根iOS应用程序相同的访问级别访问OAuth令牌,因此您可以在远程服务器上进行Twitter处理。它不使用来自开发门户的twitter应用程序的扩展权限。如Twitter网站上所述,您必须使用完整的OAuth身份验证流程(包括Web弹出窗口)来获取用户对访问直接消息的明确权限。