2012-04-20 17 views
1

FacebookのiOS SDKを使用していて、ユーザーフレンドリストを取得しました。 私はそれぞれの友人の名前とIDを持っています。iOS Facebook SDK - 友達のプロフィールの画像を取得する

私は友達のプロフィール画像を取得したいと思いますか?

ありがとうございます!

あなたはまた、このように自分のユーザー名を使用することができます

http://graph.facebook.com/IdOfTheUer/picture?type=normal

その画像を取得するために、このURLを使用することができます

答えて

12
+0

ありがとうございましたが、友人にプロフィール画像を取得しようとしたときに、何らかの理由で私はすべてではない彼らの、「ブランク」プロフィール画像を受け取ります... – jkigel

+0

twitterのようにfacebook saにアップロードされた写真やビデオを入手するためのサンプル/リンクはありますか? – Wish

+0

Facebook(電話上のアプリケーションとそれに対する呼び出し)は、HTTP要求を直接行うのではなく、呼び出した場合にシーク時間が短くなるような画像をキャッシュしません。 Facebook SDKがユーザーの表示画像をキャッシュする場合、どのようにアクセスするのですか? – javatarz

3
-(void)fbFriends { 
     [self.facebook requestWithGraphPath:@"me/friends" andDelegate:self]; 
    } 
    -(void)fbFriendsInfo :(NSString *)profileid { 
     [self.facebook requestWithGraphPath:profileid andDelegate:self]; 
    } 


    - (void)request:(FBRequest *)request didLoad:(id)result{ 
     [self hideSpinner]; 

     lblGender.text = [result objectForKey:@"gender"]; 
     lblName.text = [result objectForKey:@"name"]; 
     self.idi = [result objectForKey:@"id"]; 

     NSString *first_name = [result objectForKey:@"first_name"]; 
     NSString *gender = [result objectForKey:@"gender"]; 
     NSString *last_name = [result objectForKey:@"last_name"]; 
     NSString *link = [result objectForKey:@"link"]; 
     NSString *name = [result objectForKey:@"name"]; 
     NSString *updated_time = [result objectForKey:@"updated_time"]; 

     NSLog(@"Profile Info : \n\n%@,\n%@,\n%@,\n%@,\n%@,\n%@,\n%@",first_name,gender,idi,last_name,link,name,updated_time); 

     UIAlertView *alert = [[UIAlertView alloc]initWithTitle:AlertName message:@"Facebook Done." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
     [alert show]; 
     [alert release]; 
    } 

利用シェアコントローラクラスおよびuは、それはあなたの友人のすべての情報を返しますfbFriendsInfoを呼び出し、その後、友人のIDを取得しますので、fbFriendsを呼び出します。

+0

あなたの返信ありがとう、私は友人のIDを持っている、問題は私が彼のプロフィールの画像にアクセスできるはずですが、私は "空の"プロフィールの画像を取得することが時々あります – jkigel

10

cellForRowAtIndexPathでは、すでにfacebookユーザーのIDを取得しています.....私は右ですか? はただのURLRequestてプロフィールの写真を取得するには以下のURLを使用中に、その後....

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if([friends count]!=0) 
    {       
     NSString *strurl = [[NSString alloc] initWithFormat:@"https://graph.facebook.com/%@/picture",[[friends objectAtIndex:indexPath.row] objectForKey:@"id"]]; 
     NSURL *url=[NSURL URLWithString:strurl];///here you can retrive the image 
     [cell setObjItem:url title:[[friends objectAtIndex:indexPath.row] objectForKey:@"name"]]; 
     // Configure the cell. 
    } 
    else 
    { 
     NSLog(@"<<<<<<<<<<------Array Null-------->>>>>>>"); 
    } 
    return cell; 
} 
+0

ありがとう、しかし私が前に述べたように。時々、私は友人のプロフィール画像を「空白」の画像として取得します。プロフィール画像をアップロードしていない限り、Facebookが提供する明るい青色の背景の白い人物のシルエットを意味します。 – jkigel

+0

はいこのURLはfbuserの写真をフェイスブックに表示しますユーザーがプロファイルpicとそのスキップブランクを選択しなかった場合は、薄い青色の背景を持つFBのデフォルト画像がデフォルトのPICで表示されます。 –

+0

ちょっとした提案ですが、あなたは 'strurl'を割り当てていますが、それをリリースしていないので、リリースすることも考えています。または単に '[NSString stringWithFormat]'を使用してください –

関連する問題