2012-08-29 11 views
8

新しいFacebook SDKでユーザーのプロフィール画像を取得できません。ここでのすべての答えは、もはや動作しなくなった古いSDKのメソッドを使用します。3.0 SDKを使用してFacebookの写真を入手しよう

Facebookのチュートリアルで推奨されているFBProfilePictureViewを使用しようとしましたが、この画像はキャッシュされず、UIImageに変換することはできません。

誰でも助けてもらえますか?ありがとう!

答えて

14

OK、私は最終的に以下のものを使用して、これを得た:

imageData = [[NSMutableData alloc] init]; // the image will be loaded in here 
NSString *urlString = [NSString stringWithFormat:@"http://graph.facebook.com/%@/picture?type=large", user.id]; 
NSMutableURLRequest *urlRequest = 
[NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString] 
            cachePolicy:NSURLRequestUseProtocolCachePolicy 
           timeoutInterval:2]; 

// Run request asynchronously 
NSURLConnection *urlConnection = [[NSURLConnection alloc] initWithRequest:urlRequest 
                       delegate:self]; 
if (!urlConnection) 
     NSLog(@"Failed to download picture"); 

その後、私は一緒に画像を配置する-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data-(void)connectionDidFinishLoading:(NSURLConnection *)connectionを使用しました。

+0

私はNSURLConnection * urlConnectionを介してFBプロファイル画像を取得しますが、私はUIImageviewでこれを実装する方法を教えてください – nivritgupta

0

使用リンク:

https://graph.facebook.com/me?fields=picture

は、現在のユーザーのプロフィール画像を取得します。

FacebookはGraph API explorer toolを提供しています。これは、クエリを試したり、返された出力をチェックしたいときに便利です。

ここにはUser API Referenceへのリンクがあります。

+1

どうすればそのリンクからアプリにキャッシュされるのですか? – bmueller

1

https://github.com/rs/SDWebImageを使用して画像をキャッシュします。あなたの問題が関連する場合は、画像を要求するURLは

NSString *string = [NSString stringWithFormat:@"https://graph.facebook.com/%@?fields=picture", userid]; 
+0

URLを変更した後、私のために働いた: NSString * string = [NSString stringWithFormat:@ "https://グラフ.facebook.com /%@/picture "、userid]; ' – smek

0

でなければなりません「self.userPofilePicture.profileID = user.id;」。

次に、self.userProfilePictureはUIViewを返します。そのため、表示して表示するだけです。

忘れてはなりません。IDインスペクタのFBProfilePictureViewと[FBProfilePictureViewクラス]をAppDelegate実装ファイルに追加してください。

私はこれが役に立ちそうです。

+0

これはFBLoginView –

9

私が見つけたベストソリューション: 私はAFNetworking https://github.com/AFNetworking/AFNetworkingのUIImageを使用しました。これはリダイレクトとキャッシングを処理するので、あなたが持っているすべてのユーザーIDのプロフィール画像を取得できます。

NSString *imageUrl = [NSString stringWithFormat:@"http://graph.facebook.com/%@/picture", ((NSDictionary<FBGraphUser> *) [self.friends objectAtIndex: indexPath.row]).id]; 
[friendCell.imageView setImageWithURL:[NSURL URLWithString:imageUrl] placeholderImage:[UIImage imageNamed:@"profile.jpg"]]; 
+2

+1と組み合わせて使用​​することを前提としています。 AFNetworkingはそれを10倍に簡単にしました –

+0

何がself.friendsですか? –

+0

fbユーザーの配列 – trickster77777

関連する問題