我的应用程序可以在一个月前将数据(图片和文本)发布到Twitter。但现在,它无法将数据发布到Twitter。告诉我为什么?关注
错误:[哇那里!此页面的请求令牌无效。有可能 已经使用过,或者已经过期,因为它太旧了。请离开 返回发送给您的网站或应用程序,然后重试;它 可能是最糟糕的错误]
有了这条消息,我无法确认: 1.已经被使用过:这是什么错误? 2.过期因为它太旧了:twitter已经过期了令牌?如何重新开放过期? =>这个错误有什么解决方案?谢谢!
答案 0 :(得分:0)
如果您正在使用ios 5,那么在我借助此代码发送图像和文本时,以下代码将非常有用。
首先添加框架“twitter.framework”
NSString *var = txtTwitter.text;
NSString *str = [[NSUserDefaults standardUserDefaults]valueForKey:@"INDEX"];
ACAccountStore *accountStore = [[ACAccountStore alloc] init];
// Create an account type that ensures Twitter accounts are retrieved.
ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
// Request access from the user to use their Twitter accounts.
[accountStore requestAccessToAccountsWithType:accountType withCompletionHandler:^(BOOL granted, NSError *error) {
if(granted) {
// Get the list of Twitter accounts.
NSArray *accountsArray = [accountStore accountsWithAccountType:accountType];
if ([accountsArray count] > 0) {
ACAccount *twitterAccount = [accountsArray objectAtIndex:0];
TWRequest *postRequest = [[TWRequest alloc] initWithURL:[NSURL URLWithString:@"https://upload.twitter.com/1/statuses/update_with_media.json"] parameters:nil requestMethod:TWRequestMethodPOST];
//add text
[postRequest addMultiPartData:[var dataUsingEncoding:NSUTF8StringEncoding] withName:@"status" type:@"multipart/form-data"];
UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"00%@.jpg",str]];
//add image
[postRequest addMultiPartData:UIImagePNGRepresentation(image) withName:@"media" type:@"multipart/form-data"];
// Set the account used to post the tweet.
[postRequest setAccount:twitterAccount];
[postRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
NSString *output = [NSString stringWithFormat:@"HTTP response status: %i", [urlResponse statusCode]];
NSLog(@"Twitter msg %@",output);
// [self performSelectorOnMainThread:@selector(displayText:) withObject:output waitUntilDone:NO];
}];
}
}
}];
答案 1 :(得分:0)
错误可能是因为您的请求令牌已过期。 您需要重新生成访问令牌。
转到https://dev.twitter.com/并点击重新创建访问令牌。