簡體   English   中英

如何從iOS使用api 1.1獲取Twitter個人資料圖片?

[英]How to get twitter profile pic using api 1.1 from iOS?

我正在使用MGTwitterEngine lib來驗證Twitter帳戶,但是成功登錄后,我想獲取用戶個人資料圖片,但無法獲取它,並且以下方法停止工作:

https://api.twitter.com/1.1/users/profile_image?screen_name=username&size=bigger

我只是嘗試了上述方法,但沒有成功。 然后,我對此進行了大量研究,最終獲得了以下api,以獲取包括個人資料照片的用戶個人資料信息:

https://api.twitter.com/1.1/users/show.json?screen_name=用戶名

但是此api需要通過在我無法生成的Request標頭中傳遞Authorization進行身份驗證。

這是我嘗試過的代碼:

此處的authdata是成功登錄后從MGTwitterEngine lib返回的字符串。

NSString *authData = [[NSUserDefaults standardUserDefaults] valueForKey:@"authData"];
NSString *subAuthdata = [authData substringFromIndex:[authData rangeOfString:@"oauth_token_secret="].location];
subAuthdata = [subAuthdata substringToIndex:[subAuthdata rangeOfString:@"&user_id="].location];
NSLog(@"%@", subAuthdata);

NSLog(@"encoded: %@", [self base64Encode:subAuthdata]);

NSString *accessTokenHeaderToPost = [NSString stringWithFormat:@"Basic %@", [self base64Encode:subAuthdata]];

NSString  *twitURL = @"https://api.twitter.com/1.1/users/show.json?screen_name=username";
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString: twitURL]];
[request setHTTPMethod:@"GET"];
[request setValue:accessTokenHeaderToPost forHTTPHeaderField:@"Authorization"];
NSError *err;
NSURLResponse *response;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err];
NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];

NSLog (@"RESP: %@", responseString);

但是它總是顯示錯誤的身份驗證數據。

請幫我...

這是使用STTwitter的解決方案:

STTwitterAPI *twitter = [STTwitterAPI twitterAPIAppOnlyWithConsumerKey:@"" consumerSecret:@""];

[twitter verifyCredentialsWithSuccessBlock:^(NSString *bearerToken) {

    [twitter getUsersShowForUserID:nil orScreenName:@"barackobama" includeEntities:nil successBlock:^(NSDictionary *user) {

        NSString *profileImageURLString = [user valueForKey:@"profile_image_url"];
        NSURL *url = [NSURL URLWithString:profileImageURLString];
        UIImage *profileImage = [UIImage imageWithContentsOfURL:url];

    } errorBlock:^(NSError *error) {
        //
    }];

} errorBlock:^(NSError *error) {
    //
}];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM