如何使用twitter API在Twitter上分享?

问题描述:

使用誓言API我的代码如下Twitter上分享:如何使用twitter API在Twitter上分享?

NSURL* accessTokenUrl = [NSURL URLWithString:@"https://api.twitter.com/1.1/statuses/update.json"]; 
OAMutableURLRequest* accessTokenRequest = [[OAMutableURLRequest alloc] initWithURL:accessTokenUrl consumer:consumer token:requestToken realm:nil signatureProvider:nil]; 
OARequestParameter* verifierParam = [[OARequestParameter alloc] initWithName:@"oauth_verifier" value:verifier]; 

[accessTokenRequest setHTTPMethod:@"POST"]; 


[accessTokenRequest setValue:@"Test" forHTTPHeaderField:@"X-Twitter-Client"]; 
[accessTokenRequest setValue:@"1.0" forHTTPHeaderField:@"X-Twitter-Client-Version"]; 
[accessTokenRequest setValue:callback  forHTTPHeaderField:@"X-Twitter-Client-URL"]; 

[accessTokenRequest setParameters:[NSArray arrayWithObject:verifierParam]]; 
OADataFetcher* dataFetcher = [[OADataFetcher alloc] init]; 
[dataFetcher fetchDataWithRequest:accessTokenRequest 
         delegate:self 
       didFinishSelector:@selector(didReceiveRequestToken:data2:) 
        didFailSelector:@selector(didFailOAuth:error:)]; 

但我得到如下回应: {“错误”:[{“消息”:“无效的或过期的令牌”,“代码” :89}]}

但我的令牌是有效的,并没有过期,因为我从这个成功获取用户配置文件。 所以任何人都可以帮助我在这段代码中缺少的东西?

+0

尝试创建新tocken – Amy 2014-12-19 07:02:29

+0

@Amy但使用相同的accessToken我得到用户的个人资料。如果其过期如何获得个人资料? – 2014-12-19 07:11:56

+0

@Pooja:Twitter文档很好解释,你可以在这里找到解决方案https://dev.twitter.com/web/sign-in/implementing – Mrunal 2014-12-19 08:54:14

// PLZ试试这个代码..

-(IBAction)ShareOnTwitter :(id)sender 
{ 

UIButton *btn4=(UIButton *)sender; 
int count = (int)btn4.tag; 
NSLog(@"ShareOnTwitter count=%d",count); 

UIImage *image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.jpg",Pathforimage,[[Array_result objectAtIndex:count] objectForKey:@"img_File_Name"]]]; 

if([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) { 

    SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; 

    SLComposeViewControllerCompletionHandler myBlock = ^(SLComposeViewControllerResult result) 
    { 
     if (result == SLComposeViewControllerResultCancelled) 
     { 
        NSLog(@"Cancelled"); 
     } 
     else 
     { 
      NSLog(@"Done"); 
     } 
     [controller dismissViewControllerAnimated:YES completion:Nil]; 
    }; 
    controller.completionHandler =myBlock; 

    //Adding the Text to the twitter post value from iOS 
    [controller setInitialText:@""]; 

    //Adding the Image to the twitter post value from iOS 
    [controller addImage:image]; 

    [self presentViewController:controller animated:YES completion:Nil]; 
} 
else 
{ 
    NSLog(@"UnAvailable"); 
} 
} 
+0

检查我的问题,我想使用API​​。 – 2014-12-19 11:10:28