26925


自分自身のFacebookのフィードを取得して、他サイトに出力させようとしています。

[code]

    $response = $fb->get('/me/feed/?fields=id,created_time,with_tags,picture,link,message');
    $graphEdge = $response->getGraphEdge();
    
[/code]

上記の記述で(大分端折っていますが)フィードを取得出来たのですが、複数画像が紐付けられているはずの投稿であっても、pictureの中身に1つ分の画像のURLしか入ってきません。  
全ての画像のURLを取得する方法は何かありますでしょうか？

Graph API: v2.6  
Facebook PHP SDK: v5.2.0

* * *

・補足(16年6月22日 17:00)  
下記のような記述で、無事複数画像のURLが取得出来ました。

[code]

    $feed_response = $fb->get('/me/feed/?fields=id,created_time,with_tags,picture,link,message');
    $feeds = $feed_response->getGraphEdge()->asArray();
    foreach ($feeds as $feed) {
        $post_response = $fb->get('/'.$feed["id"].'/attachments');
        $post = $post_response->getGraphEdge()->asArray();
        switch($post[0]["type"]){
            case "photo":
                echo "画像のURL: ". $post[0]["media"]["image"]["src"]."\n";
                break;
            case "album":
                foreach($post[0]["subattachments"] as $sub_attachment){
                    echo "画像のURL: ". $sub_attachment["media"]["image"]["src"]."\n";
                }
                break;
            case "share":
                break;
        }
    }
    
[/code]


CC BY-SA 3.0
2016-06-21T03:33:45.977
26908
2016-06-22T08:00:36.360
2016-06-22T08:00:36.360
16901
16901
question
php facebook
Facebook Graph API で複数画像が紐づけられた投稿を取得したい


/me/feedで指定できるフィールドはPostオブジェクトのフィールドと同じものになりますが、ここでは添付された画像や動画のリストを直接取得することはできないようです。（pictureフィールドで取得できるものはアップロードされた画像とは限らず、投稿されたURLのリンク先から拾ってきたものなども含まれます）

かわりに、Postオブジェクトのattachmentsエッジが使えそうです。  
<https://developers.facebook.com/docs/graph-api/reference/v2.6/attachment>

/me/feedで取得したPostそれぞれについて、

`/{post-id}/attachments`

を参照してみてください。添付されたメディアの一覧が取得できるかと思います。


CC BY-SA 3.0
2016-06-21T17:59:26.937
26925
2016-06-21T18:06:23.323
2016-06-21T18:06:23.323
784
784
26908
answer