Facebook Graph API:1回のリクエストで大きな画像を取得


88

現在、Graph API Explorerを使用していくつかのテストを行っています。それは良いツールです。

ユーザーの友達リスト、友達の名前、ID、写真を取得したい。だから私はタイプします:

https://graph.facebook.com/me/friends?fields=id,picture,name

しかし、画像は50x50のみであり、このリクエストではもっと大きな画像をお願いします。

出来ますか ?

回答:


69

ただし、「画像」属性を取得する必要はありません。より便利な方法があります。必要なのはユーザーIDだけです。以下の例を参照してください。

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

psタイプは必要なサイズを定義します

基本的な権限でトークンを使用すると、/ me / friendsはid + name属性を持つ友達のリストのみを返すことに注意してください。


1
しかし、私は最後の文に同意しません。基本的な許可があれば、id + name属性以外にアクセスできます。例:graph.facebook.com/btaylor
Martin

29
ええと、「1つの要求で」はどうですか?
Iulian Onofrei 2014

4
Uは画像のfull_picture instatも使用できます。
ボーペニングス2016年

"メッセージ": "(#12)このタイプの画像エッジはバージョンv2.3以降では非推奨です"
ツールキット

198

このFacebookのバグで説明されているように、新しいAPIの「フィールド拡張」構文を使用して特定の画像サイズをリクエストすることもできます。

そのようです:

https://graph.facebook.com/____OBJECT_ID____?fields=picture.type(large)

27
確かに。fields = picture.width(640)はさらに優れています。
kaay 14

6
Facebook Graph APIがAPIを変更したようです。Facebookは、あなたの提案を使用しようとしたときに、「サブフィールドは画像でサポートされていません」と応答しました。
ファットH. VU

2
エラーの取得:{"エラー":{"メッセージ": "サポートされていない取得要求。developers.facebook.com/ docs / graph-apiにあるGraph APIのドキュメントを参照してください "、 "type": "GraphMethodException"、 "code": 100}}
Vineesh TP 2014

13
2.xクエリについては?field = full_picture、attachmentsを参照してください
Kevin

3
新しいFacebookの変更により、大きな画像を取得できません。誰かヒントはありますか?
shadab.tughlaq

81

正しい画像サイズですべての友達(もちろんアプリも使用している)を取得する最良の方法は、フィールド拡張を使用することです。いずれかのサイズタグ(正方形、小、通常、大)を使用します。

/me/friends?fields=picture.type(large)

(編集:これはもう機能しません)

...または幅/高さを指定できます:

me/friends?fields=picture.width(100).height(100)

ところで、次のように書くこともできます:

me?fields=friends{picture.type(large)}

1
情報をありがとう、私は答えを更新します。ただし、full_pictureは友達には機能しないようです。
luschn 2015年

34

フィールドの配列を変更id,name,pictureしますid,name,picture.type(large)

https://graph.facebook.com/v2.8/me?fields=id,name,picture.type(large)&access_token=<the_token>

結果:

{
   "id": "130716224073524",
   "name": "Julian Mann",
   "picture": {
      "data": {
         "is_silhouette": false,
         "url": "https://scontent.xx.fbcdn.net/v/t1.0-1/p200x200/15032818_133926070419206_3681208703790460208_n.jpg?oh=a288898d87420cdc7ed8db5602bbb520&oe=58CB5D16"
      }
   }
}

7
200 x 200はどのように大きいですか?
AlxVallejo 2017年

1
最新(2.10)のグラフAPIは「大きな」サイズでは利用できません:Graph returned an error: (#100) For field 'picture': type must be one of the following values: thumbnail, small, album
Honza

33

次のように、画像のサイズをピクセル単位で設定できます。

https://graph.facebook.com/v2.8/me?fields=id,name,picture.width(500).height(500)

同様に、typeパラメータを使用できます

{user-id}/?fields=name,picture.type(large)

ドキュメントから

enumを入力します{小、通常、アルバム、大、正方形}



20

私はGraph API Explorerを広範囲に調査し、ついにfull_pictureを見つけました

https://graph.facebook.com/v2.2/$id/posts?fields=picture,full_picture

PS私はfull_pictureが常にフルサイズの画像を提供するとは限らないことに気付きました。「添付ファイル」は

https://graph.facebook.com/v2.2/$id/posts?fields=picture,full_picture,attachments

これは表示幅:720pxのみです。urだけの大きな写真はこのように見つけます。最大のgraph.facebook.com/photo_idの場合、あなたは6つの異なるサイズの写真を見ることができます。
gokhan 2015

フレンズエンドポイントでテストしたところ、
うまくいき

9

うーん...私は解決策を見つけたと思います。

実際には、要求することができます

https://graph.facebook.com/me/friends?fields=id,name

http://developers.facebook.com/docs/reference/api/によると(セクション「写真」)に、プロフィールの写真のURLはユーザーIDで作成できます

たとえば、ユーザーIDが$ idにあると仮定します。

"http://graph.facebook.com/$id/picture?type=square"
"http://graph.facebook.com/$id/picture?type=small"
"http://graph.facebook.com/$id/picture?type=normal"
"http://graph.facebook.com/$id/picture?type=large"

しかし、それは最終的な画像のURLではないので、誰かがより良い解決策を持っているなら、私は知って嬉しいでしょう:)


1
画像サイズの
種類


2

からv2.7/<picture-id>?fields=imagesさまざまなサイズの画像のリストが表示されます。最初の要素はフルサイズの画像です。

一度に複数の画像の解決策を知りません。


1

グラフの応答で見つかった画像のURL(「http://photos-c.ak.fbcdn.net/」のもの)では、デフォルトの「_s.jpg」を「_n.jpg」(?通常のサイズ)で置き換えるか、または「_b.jpg」(?大きいサイズ)または「_t.jpg」(サムネイル)。

Hacakable URLs / REST APIはWebをより良くします。


1
「リクエストの処理中にエラーが発生しました。参照番号50.27f74317.14274.604fb0」が常に残念なことに
Kevin

1

rest-fbユーザー(正方形の画像、大きな解像度):接続myFriends = fbClient.fetchConnection( "me / friends"、User.class、Parameter.with( "fields"、 "public_profile、email、first_name、last_name、gender、picture .width(100).height(100) "));


1

私がリクエストしたときにこのエラーが発生しましたpicture.type(full_picture)

"(#100)フィールド 'picture'の場合:タイプは次のいずれかの値である必要があります:小、標準、アルバム、大、正方形

picture.type(album)およびを使用してリクエストを行うとpicture.type(square)、は画像サイズ50x50ピクセルで応答します。

でリクエストを行うとpicture.type(large)、は200x200ピクセルサイズの画像で応答します。

でリクエストするとpicture.width(800)、477x477ピクセルサイズの画像が返されます。

picture.width(250)、レスポンス320x320。

picture.width(50)、50x50を返します。

picture.width(100)、100x100を返します。

picture.width(150)、160x160を応答します。

ユーザーが最初にその写真を追加すると、facebookはさまざまなサイズに変更された画像を提供すると思います。

ここにあるのは、ユーザー画像を要求するためのAPIが、要求された画像のサイズ変更をサポートしていないことです。一番近いサイズの画像になると思います。


真...「(大)picture.type」も私に200×200を与えた-非常に大規模ではない私が言わなければならない
ジェームズ

0

今のところ、友達の大きな写真を撮る唯一の方法はFQLを使うことだと思います。まず、友達のリストを取得する必要があります。

https://graph.facebook.com/me/friends

次に、このリストを解析して、すべての友達を抽出しますids。それができたら、次のFQLクエリを実行します。

SELECT id, url FROM profile_pic WHERE id IN (id1, id2) AND width=200 AND height=200

200ここはサイズの例です。何でも入力できます。次の応答が得られるはずです。

{
  "data": [
    {
      "id": ..., 
      "url": "https://fbcdn-profile-a.akamaihd.net/..."
    }, 
    {
      "id": ..., 
      "url": "https://fbcdn-profile-a.akamaihd.net/..."
    }
  ]
}

各URLは200x200px画像へのリンクです。




0

JSスタイルのバリアント。非常に大きな画像幅を設定するだけで、最大のバリエーションが得られます。

FB.api(
  '/' + userId,
  {fields: 'picture.width(2048)'},
  function (response) {
    if (response && !response.error) {
      console.log(response.picture.data.url);
    }
  }
);

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.