2014-12-19 186 views
0

使用誓言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

回答

0

// 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