現在、Graph API Explorerを使用していくつかのテストを行っています。それは良いツールです。
友達の名前、ID、写真を含むユーザーの友達リストを取得したい。だから私はタイプします:
https://graph.facebook.com/me/friends?fields=id,picture,name
しかし、画像は 50x50 しかないので、このリクエストではより大きな画像を希望します。
出来ますか ?
現在、Graph API Explorerを使用していくつかのテストを行っています。それは良いツールです。
友達の名前、ID、写真を含むユーザーの友達リストを取得したい。だから私はタイプします:
https://graph.facebook.com/me/friends?fields=id,picture,name
しかし、画像は 50x50 しかないので、このリクエストではより大きな画像を希望します。
出来ますか ?
Facebook のこのバグで説明されているように、新しい API の「フィールド拡張」構文を使用して、特定の画像サイズをリクエストすることもできます。
そのようです:
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 だけです。以下の例を参照してください。
https://graph.facebook.com/user_id/picture?type=large
ps タイプは、必要なサイズを定義します
基本的なパーミッションでトークンを使用すると、/me/friends は id+name 属性を持つフレンドのリストのみを返すことに注意してください。
フィールドの配列を次のように変更し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"
}
}
}
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
高さまたは幅に基づいて画像が必要な場合は、画像を取得することもできます
https://graph.facebook.com/user_id/picture?height=
また
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/ (セクション「写真」) によると、プロファイルの写真の 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 ではないため、誰かがより良い解決策を持っている場合は、喜んでお知らせします :)
でリクエストを行ったときに、このエラーが発生しました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 は、リクエストされた画像のサイズ変更をサポートしていません。画像の最も近いサイズが得られると思います。
In pictures URL found in the Graph responses (the "http://photos-c.ak.fbcdn.net/" ones), just replace the default "_s.jpg" by "_n.jpg" (? normal size) or "_b.jpg" (? big size) or "_t.jpg" (thumbnail).
Hacakable URLs/REST API make the Web better.
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)"));
今のところ、友達の大きな写真を取得する唯一の方法は、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に変更します。
JS スタイルのバリアント。非常に大きな画像幅を設定するだけで、最大のバリアントが得られます。
FB.api(
'/' + userId,
{fields: 'picture.width(2048)'},
function (response) {
if (response && !response.error) {
console.log(response.picture.data.url);
}
}
);