0

ユーザー/友達の写真を表示するアプリケーションを開発しています。ほとんどの場合、アルバムから写真を取得できますが、ユーザー/アルバム カバーの写真の場合は、次の URL が画像を提供するオブジェクト ID だけが与えられます。

https://graph.facebook.com/1015146931380136/picture?access_token=ABCDEFG&type=picture

表示すると、ユーザーは次のような画像ファイル自体にリダイレクトされます。

https://fbcdn-photos-a.akamaihd.net/hphotos-ak-ash4/420455_1015146931380136_78924167_s.jpg

私の質問は、最終的なイメージ パスを解決し、アクセス トークンをエンド ユーザーに送信しないようにするための Pythonic または GraphAPI メソッドはありますか?

4

3 に答える 3

2

カバー写真の実際の画像URLを取得するには、最初にfacebook api呼び出しを行ってカバー写真を取得し、次にurlフィールドを抽出しますPHP。次のようにします。

$cover = $facebook->api("$album_id?fields=picture&access_token=ABVHDG");
$cover_url = $cover['picture']['data']['url']; //this $cover_url is image file itself from host fbcdn-photos-a.akamaihd.net

それが役に立てば幸い

于 2012-11-05T09:36:39.807 に答える
2

FacebookのグラフAPIURLは、実際にユーザーアバターを持つCDNURLに302リダイレクトします。あなたはそれを使用して簡単に見つけることができますurllib2

>>> import urllib2
>>> url = "http://graph.facebook.com/4/picture"
>>> req = urllib2.Request(url)
>>> res = urllib2.urlopen(req)
>>> finalUrl = res.geturl()
>>> finalUrl
'http://profile.ak.fbcdn.net/hprofile-ak-prn1/157340_4_3955636_q.jpg'

または、画像のJSONバージョンのGraphapiを呼び出します。

http://graph.facebook.com/4/?fields=picture&type=large

それをデコードし、:を取得しurlます

{
   "id": "4",
   "picture": {
      "data": {
         "url": "http://profile.ak.fbcdn.net/hprofile-ak-prn1/157340_4_3955636_q.jpg",
         "is_silhouette": false
      }
   }
}

チップ:

  1. httpが機能する場合はhttpsを使用しないでください。アバターAPIで機能します。httpの方が高速です。
  2. グラフAPIで画像をクエリするためにaccess_tokenは必要ありません。これは、access_tokenがなくても機能します。
于 2012-11-05T09:37:48.087 に答える
1

次のように Graph API 呼び出しを行うと、実際の URL が取得されます。

https://graph.facebook.com/[fbid]?fields=picture

ところで、これにはアクセストークンは必要ありません。

于 2012-11-05T09:11:45.080 に答える