22

私はoauthを使用してFacebookユーザーをアプリにログインしています。FBアカウントと基本的なアクセス許可の範囲でテストしています。Facebookのドキュメントには、基本的な権限で「picture」を取得できるはずだと書かれていますが、APIを使用してアクセスすると、アカウントに「picture」プロパティがありません。ただし、名、姓などはあります。

これは、私のアカウントが公開されていないためですか?なぜこれが起こるのでしょうか?私は間違いなくプロフィール写真を添付し​​ています。

これが私のfbリンクです:http: //www.facebook.com/josh.nankin

4

5 に答える 5

20

最善の方法は、基本的なアクセス許可を保持し、別の手順で画像のリクエストを開始することです。次の方法でグラフ API に問い合わせます。

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

拡大画像:

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

次のような JSON 応答が返されます。

{
   "id": "100001XXXXXXXXX",
   "picture": {
      "data": {
         "url": "http://profile.ak.fbcdn.net/hprofile-XXXX/41524_1000018XXX51507_XXXX3_q.jpg",
         "is_silhouette": false
      }
   }
}
于 2012-12-19T14:09:51.793 に答える
6

そのため、API で /me パスにアクセスしたときにグラフ API が画像プロパティを返さない理由はまだわかりませんが、/me からユーザー名を取得すると、次の場所で画像を簡単に取得できます。

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

于 2012-07-31T21:23:33.463 に答える
5
于 2012-08-01T09:18:04.390 に答える
2

実際には、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 のタイプをtype =smallに変更すると、低解像度の画像が返されます。

var linkpp = 'https://graph.facebook.com/' + response.id + '/picture?type=small';
于 2016-04-26T13:28:54.697 に答える