2

Facebook Graph API を使用して、ユーザーのニュース フィードを取得しています。

私のリクエスト URL は次のとおりです: xxxxxxxxxxxxxx/feed?fields=from,id,created_time,picture,link,object_id,message, likes.fields(id)

object_id を使用して、次の URL を使用して投稿の全体像を取得したいと思います: http://graph.facebook.com/OBJECT_ID/picture?type=normal

画像の戻りフィールドは常に入力されていますが、いくつかの投稿で object_id が返されていません。どうしてこれなの?私は本当に高解像度の写真が必要ですが、これを取得する別の方法が見つかりませんでした..

4

3 に答える 3

1

object_id は、添付ファイルが facebook オブジェクト (ユーザーがアップロードした画像など) である場合にのみ返されます。フィードの一部の記事には画像がまったくなく、一部の画像は Facebook オブジェクトではありません (共有リンクのサムネイルなど)。

于 2013-10-10T17:33:07.637 に答える
0

また、一部の FB 投稿には{object_id}大きな写真が含まれていないことに気付きましたが、{picture}サムネイルの URL には、元の大きな画像のエンコードされた URL が含まれていることに気付きました。

https://external.xx.fbcdn.net/safe_image.php?d=AQBe9UvGd0vPbAHP&w=130&h=130&url=http%3A%2F%2Fskift.com%2Fwp-content%2Fuploads%2F2015%2F12%2Fpollution.jpg&cfs=1

--> 含む -->

http://skift.com/wp-content/uploads/2015/12/pollution.jpg

そこで、 をチェックし{object_id}、そうでない場合は から元の URL を抽出しようとします{picture}

if(isset($post['object_id'])) {
    echo "http://graph.facebook.com/".$post['object_id']."/picture";
    }
    elseif(isset($post['picture'])) {
        echo urldecode(preg_replace('/&cfs.*/', '', preg_replace('/.*url=/', '', $post['picture'])));
    } 
    else {
        echo "no_large_image";
}
于 2016-01-12T10:48:25.467 に答える