現在、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のみであり、このリクエストではもっと大きな画像をお願いします。
出来ますか ?
回答:
ただし、「画像」属性を取得する必要はありません。より便利な方法があります。必要なのはユーザーIDだけです。以下の例を参照してください。
https://graph.facebook.com/user_id/picture?type=large
psタイプは必要なサイズを定義します
基本的な権限でトークンを使用すると、/ me / friendsはid + name属性を持つ友達のリストのみを返すことに注意してください。
正しい画像サイズですべての友達(もちろんアプリも使用している)を取得する最良の方法は、フィールド拡張を使用することです。いずれかのサイズタグ(正方形、小、通常、大)を使用します。
/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"
}
}
}
Graph returned an error: (#100) For field 'picture': type must be one of the following values: thumbnail, small, album
高さや幅に基づいて画像が必要な場合は、画像を取得することもできます
https://graph.facebook.com/user_id/picture?height=
または
https://graph.facebook.com/user_id/picture?width=
値はデフォルトでピクセル単位であり、int値を指定するだけで十分です。
私は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/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ではないので、誰かがより良い解決策を持っているなら、私は知って嬉しいでしょう:)
width
&height
をFacebookグラフAPIへのリクエストで指定できます。http://graph.facebook.com/user_id/picture?width=500&height=500
グラフの応答で見つかった画像のURL(「http://photos-c.ak.fbcdn.net/」のもの)では、デフォルトの「_s.jpg」を「_n.jpg」(?通常のサイズ)で置き換えるか、または「_b.jpg」(?大きいサイズ)または「_t.jpg」(サムネイル)。
Hacakable URLs / REST APIはWebをより良くします。
私がリクエストしたときにこのエラーが発生しました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が、要求された画像のサイズ変更をサポートしていないことです。一番近いサイズの画像になると思います。
今のところ、友達の大きな写真を撮る唯一の方法は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
以前:https : //fbcdn-sphotos-ca.akamaihd.net/hphotos-ak-xfp1/t1.0-9/q71/s480x480/10454308_773207849398282_283493808478577207_n.jpg
後:https : //fbcdn-sphotos-ca.akamaihd.net/hphotos-ak-xfp1/t1.0-9/q71/s720x720/10454308_773207849398282_283493808478577207_n.jpg
JSスタイルのバリアント。非常に大きな画像幅を設定するだけで、最大のバリエーションが得られます。
FB.api(
'/' + userId,
{fields: 'picture.width(2048)'},
function (response) {
if (response && !response.error) {
console.log(response.picture.data.url);
}
}
);
フルサイズの画像を取得するには、ピクチャキーの代わりにfull_pictureを使用できます。