2012-07-31 7 views
17

私はoauthを使ってfacebookユーザーを私のアプリケーションにログインさせています。 FBアカウントと基本的な権限の範囲でテストしています。 Facebookのドキュメントでは基本的な権限で「画像」を取得できるはずだが、APIでアクセスするとアカウントには「画像」プロパティはないという。名前、姓などはそこにあります。facebook oauth、基本的なアクセス許可を持つ画像がありません

これは私のアカウントが一般公開されていないためですか?なぜこれが起こるのでしょうか?私は間違いなくプロファイル画像を添付しています。ここで

は私のFBのリンクです:http://www.facebook.com/josh.nankin

+0

これを別のアカウントで確認しました。それと同じ問題です。 –

答えて

4

ので、まだわからない、なぜあなたはAPIで/私のパスを打ったときのグラフAPIは、画像のプロパティを返しませんが、あなたは私の/からユーザー名を持っていたら、

https://graph.facebook.com/USERNAME/picture

+0

ええと...私はもはやドキュメントにあまり注意を払っていません。それはあまりにも混乱している、あなたはFQLとOGから大幅に異なる結果を得る。返されるフィールドを確認する最も簡単な方法は、エクスプローラーhttps://developers.facebookを使用することです。com/tools/explorer –

+3

さらに大きなサイズを取得するには、https://graph.facebook.com/USERNAME/picture?type=large – simoes

+2

を使用することもできます。ユーザ名 –

4

https://developers.facebook.com/docs/reference/api/user/:あなたはでかなり簡単に画像を得ることができます

“picture: The URL of the user's profile pic (only returned if you explicitly specify a 'fields=picture' param)”

太字の部分を見落としたことはありませんか?

+0

の代わりにユーザID番号を使用することもできますこれはもはやケースではなく、この文章はもはやドキュメントにはありません。 –

17

基本的なアクセス許可を保持し、別の手順でイメージの要求を開始するのが最善の方法です。このように、グラフAPIを確認する:

https://graph.facebook.com/[fb_user_id]?fields=picture.type(small) 

拡大:あなたはから直接プロフィールの写真のURLを導き出すことができ

{ 
    "id": "100001XXXXXXXXX", 
    "picture": { 
     "data": { 
     "url": "http://profile.ak.fbcdn.net/hprofile-XXXX/41524_1000018XXX51507_XXXX3_q.jpg", 
     "is_silhouette": false 
     } 
    } 
} 
+0

これはもう動作しないようです:https://graph.facebook.com/914431778578699?fields=picture.type(large)はエラーを返します:「このリソースを要求するにはアクセストークンが必要です」 – stkvtflw

6

https://graph.facebook.com/[fb_user_id]?fields=picture.type(large) 

はあなたが好きなJSONレスポンスを取得しますジョシュ・ナンキン(Josh Nankin)が述べたように、基本的なOAuth情報はfacebookから返されましたが、明確化されています。

あなたはまだ、ユーザのIDは、例えば、写真を要求するために戻っ使用することができます。

https://graph.facebook.com/914431778578699/picture?type=large

は、唯一の要求がなされなければならない。この方法で

https://graph.facebook.com/dark.eye.1/picture?type=large

と同じですこれは、写真URLをDBに保存するときに補間できるためです。

1

実際には、USER_IDを取得できるので、プロフィール画像を取得するために公開アクセスを許可する必要はありません。 USER_IDでは、簡単にプロフィール画像にナビゲートできます。

function checkLoginState() { 
    FB.getLoginStatus(function(response) { 
     statusChangeCallback(response); 
     console.log('Welcome! Fetching your information.... '); 
     var url = '/me?fields=id,name'; 
     FB.api(url, function(response) { 
      var linkpp = 'https://graph.facebook.com/' + response.id + '/picture?type=large'; 
      document.getElementById("id_of_link_tag").href = linkpp; 
     }); 
    }); 
} 

あなたは、低解像度の画像を返しタイプ=小可変linkppでタイプを変更することができます。

var linkpp = 'https://graph.facebook.com/' + response.id + '/picture?type=small'; 
関連する問題