无法从我的应用程序发布数据到twitter?

时间:2012-01-19 04:36:17

标签: iphone twitter

我的应用程序可以在一个月前将数据(图片和文本)发布到Twitter。但现在,它无法将数据发布到Twitter。告诉我为什么?关注

  

错误:[哇那里!此页面的请求令牌无效。有可能   已经使用过,或者已经过期,因为它太旧了。请离开   返回发送给您的网站或应用程序,然后重试;它   可能是最糟糕的错误]

有了这条消息,我无法确认: 1.已经被使用过:这是什么错误? 2.过期因为它太旧了:twitter已经过期了令牌?如何重新开放过期? =>这个错误有什么解决方案?谢谢!

2 个答案:

答案 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/并点击重新创建访问令牌。