将MGTwitterEngine更新为新的Twitter API v1.1

时间:2013-06-14 08:03:15

标签: iphone cookies twitter mgtwitterengine

我目前正在从xml for Twitters new API v1.1将我的应用程序更新为.json。我目前有.json工作,可以登录,给我时间表,提及,但当试图获得直接消息,列表或用户信息时,它似乎正在寻找" cookies"但它没有存储。

这是twitter在尝试进行简单的GET用户/节目调用时收到的错误消息:

Twitter request failed: 08AD12D3-0044-49AB-8D3D-4E61D8398550 with error:Error Domain=HTTP 
 Code=400 "The operation couldn’t be completed. (HTTP error 400.)" UserInfo=0xce90540  
{response=<NSHTTPURLResponse: 0xce94bd0> { URL: 
https://api.twitter.com/1.1/users/show.json?screen_name=FreeAppl3 } { status code: 400,  
headers {
"Content-Encoding" = gzip;
"Content-Type" = "application/json; charset=utf-8";
Date = "Fri, 14 Jun 2013 09:25:40 UTC";
Server = tfe;
"Set-Cookie" = "guest_id=v1%3A137120194019582695; Domain=.twitter.com; Path=/; 
Expires=Sun, 14-Jun-2015 09:25:40 UTC";
"Strict-Transport-Security" = "max-age=631138519";
"Transfer-Encoding" = Identity;

} }, body={"errors":[{"message":"Bad Authentication data","code":215}]}hjD4nzoeOUaTQ1Q%3D}

当我打电话给[twitterEngine isAuthorized];返回YES,如果我检查我的访问令牌字符串,我会收到初始登录时存储的内容。我搜索并搜索了正在发生的事情或如何解决问题,但我只是被困住了,任何帮助都会非常感激。

Twitter API - https://dev.twitter.com/docs/api/1.1/get/users/show Twitter错误代码 - https://dev.twitter.com/docs/error-codes-responses

1 个答案:

答案 0 :(得分:2)

请参考 FHSTwitterEngine您可以使用新的FHSTwitterEngine,如果您在没有进行身份验证的情况下请求此方法,则会删除用户状态...您需要将消费者密钥和令牌与screen_name一起发送..

在FHSTwitterEngine

//get username pass to method. In Dictionary you can get all info  
NSString *username = [[FHSTwitterEngine sharedEngine]loggedInUsername];
NSDictionary *data=[[FHSTwitterEngine sharedEngine]getUserProfile:username];


 // method to get all user info
-(id)getUserProfile:(NSString *)username
{

   if (username.length == 0) {
      return getBadRequestError();
   }

   NSURL *baseURL = [NSURL URLWithString:url_users_show];
   OAMutableURLRequest *request = [OAMutableURLRequest requestWithURL:baseURL consumer:self.consumer token:self.accessToken];
   OARequestParameter *usernameP = [OARequestParameter requestParameterWithName:@"screen_name" value:username];

   NSArray *params = [NSArray arrayWithObjects:usernameP, nil];

   id userShowReturn = [self sendGETRequest:request withParameters:params];
   return userShowReturn;
}