現在、 Graph API Explorer を使用していくつかのテストを行っています。それは良いツールです。
友人の名前、ID、写真を含む、ユーザーの友人リストを取得したい。だから私は入力します:
https://graph.facebook.com/me/friends?fields=id,picture,name
しかし、画像は50x50に過ぎないため、このリクエストではもっと大きなものを希望します。
出来ますか ?
ただし、「picture」属性を取得する必要はありません。もっと便利な方法があります。必要なのはユーザーIDだけです。以下の例を参照してください。
https://graph.facebook.com/user_id/picture?type=large
追伸タイプはあなたが望むサイズを定義します
plzは、基本的な権限を持つトークンを使用すると、/ me/friendsはid + name属性を持つ友達のリストのみを返すことに注意してください
Facebookの このバグ で説明されているように、新しいAPI " field expansion "構文を使用して特定の画像サイズをリクエストすることもできます。
そのようです:
https://graph.facebook.com/____OBJECT_ID____?fields=picture.type(large)
すべての友人(もちろんアプリも使用している)を正しい画像サイズで取得する最良の方法は、サイズタグ(正方形、小さい、通常、大きい)のいずれかで フィールド拡張 を使用することです):
/me/friends?fields=picture.type(large)
(編集:これはもう機能しません)
...または幅/高さを指定できます:
me/friends?fields=picture.width(100).height(100)
ところで、このように書くこともできます:
me?fields=friends{picture.type(large)}
フィールドの配列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"
}
}
}
次のように、画像のサイズをピクセル単位で設定できます。
https://graph.facebook.com/v2.8/me?fields=id,name,picture.width(500).height(500)
同様に、type
パラメーターを使用できます
{user-id}/?fields=name,picture.type(large)
ドキュメント から
タイプenum {小、普通、アルバム、大、正方形}
Graph API Explorerを詳細に調査し、最終的にfull_pictureを見つけました
https://graph.facebook.com/v2.2/$id/posts?fields=picture,full_picture
追伸full_pictureが、希望するフルサイズの画像を常に提供するとは限らないことに気付きました。 「添付ファイル」は
https://graph.facebook.com/v2.2/$id/posts?fields=picture,full_picture,attachments
また、高さまたは幅に基づいて必要に応じて画像を取得することもできます
https://graph.facebook.com/user_id/picture?height=
OR
https://graph.facebook.com/user_id/picture?width=
デフォルトでは、値はピクセル単位で、int値を指定するだけです。
うーん...私は解決策を見つけたと思う。
実際には、要求することができます
https://graph.facebook.com/me/friends?fields=id,name
http://developers.facebook.com/docs/reference/api/ (セクション「Pictures」)によると、プロフィールの写真の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ではないので、誰かがより良い解決策を持っているなら、私は知ってうれしいです:)
FacebookグラフAPIへのリクエストで幅と高さを指定できます:http://graph.facebook.com/user_id/picture?width=500&heigth=500
v2.7
から、/<picture-id>?fields=images
は、異なるサイズの画像のリストを提供します。最初の要素はフルサイズの画像です。
複数の画像を一度に解決する方法がわかりません。
グラフの応答(「 http://photos-c.ak.fbcdn.net/ =」のもの)にある写真のURLで、デフォルトの「_s.jpg」を「_n.jpg」に置き換えるだけです「(通常サイズ?)または「_b.jpg」(ビッグサイズ?)または「_t.jpg」(サムネイル)。
Hacakable URL/REST APIはWebを改善します。
rest-fbユーザー(正方形の画像、大きな解像度):Connection myFriends = fbClient.fetchConnection( "me/friends"、User.class、Parameter.with( "fields"、 "public_profile、email、first_name、last_name、gender、picture .width(100).height(100) "));
フルサイズの画像を取得するには、ピクチャキーの代わりにfull_pictureを使用できます。
今のところ、友人の大きな写真を取得する唯一の方法は、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画像へのリンクです。
私は同じ問題を抱えていますが、私の問題を解決するためにこれを試しました。大きな画像を返します。完全な修正ではありませんが、これを試すことができます。
https://graph.facebook.com/v2.0/OBJECT_ID/picture?access_token=XXXXX
次のように、各jsonオブジェクトのURLからピクセルサイズを変更して、画像のサイズを変更してみてください。
たとえば、s480x480をs720x720に変更します
picture.type(full_picture)
でリクエストを行ったときにこのエラーが発生しました:
「(#100)フィールド「picture」の場合:typeは次の値のいずれかでなければなりません:small、normal、album、large、square」
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は、リクエストされた画像のサイズ変更をサポートしていません。画像の最も近いサイズを与えると思います。
JSスタイルのバリアント。巨大な大きな画像幅を設定するだけで、最大のバリエーションが得られます。
FB.api(
'/' + userId,
{fields: 'picture.width(2048)'},
function (response) {
if (response && !response.error) {
console.log(response.picture.data.url);
}
}
);