2017-04-08 7 views
0

Facebookの投稿と添付ファイルがあるので、投稿のリストを作成できます。問題は、ID、メッセージ、添付ファイルをすべての投稿フィードの配列に入れたいということです。配列内のオブジェクトを反復処理する必要があるかどうか、またはIDを選択して関連情報を取得できるかどうかはわかりません。Node.js入れ子になったJavascriptオブジェクトをループする

また、以前の呼び出しに依存する他の呼び出しを行うため、同期呼び出しを取得するためにasync.waterfall()を使用しています。

私は、添付ファイルのID、メッセージやSRCのURLを取得するには、これを試してみました:意志出力の上

var async = require("async"); 
var graph = require('fbgraph'); 

async.waterfall([ 
    getFeed, 
    getPostPicture, 
], function (err, result) { 
}); 
function getFeed(callback) { 
    graph.get("/.../feed" + "?fields=message,attachments&access_token=APPID|APPSECRET", function(err, res) { 
     callback(null, res); 
    }); 
} 
function getPostPicture(arg1, callback) { 

    var feedData = arg1.data; 
    for(var i in feedData) 
    { 
     var id = feedData[i].id; 
     var message = feedData[i].message; 
     var feedAttachment = feedData[i].attachments 

     for (var j in feedAttachment) 
     { 
      var attachment = feedAttachment.data; 
      var attachmentURL = attachment[i].src; 
      for (var j in attachmentURL) 
      { 
       var attachmentURL = feedAttachment.src; 
      } 
     } 
    } 
     console.log(attachment); 
} 

以下
[ { description: 'post message 1', 
    media: { image: [Object] }, 
    target: 
    { id: '...', 
     url: 'https://www.facebook.com/.../photos/a............/.../?type=3' }, 
    title: 'Timeline Photos', 
    type: 'photo', 
    url: 'https://www.facebook.com/.../photos/a............/.../?type=3' } ] 

は、私が最初にgraph.getと呼ばれる応答でありますソースコード

及びIは必要{データ - >メッセージ、ID、添付 - >データ[SRC]}

{ 
    "data": [ 
    { 
     "message": "post message 1", 
     "id": "..._...", 
     "attachments": { 
     "data": [ 
      { 
      "description": "picture 1", 
      "media": { 
      "image": { 
      "height": 256, 
      "src": "https://scontent.xx.fbcdn.net/v/t1.0-9/..._..._..._n.png?oh=...&oe=...", 
      "width": 256 
      } 
     }, 
     "target": { 
      "id": "...", 
      "url": "https://www.facebook.com/.../photos/a............/.../?type=3" 
     }, 
     "title": "Timeline Photos", 
     "type": "photo", 
     "url": "https://www.facebook.com/.../photos/a............./..../?type=3" 
     } 
     ] 
    } 
    }, 
    { 
     "message": "Test status update 123", 
     "id": "..._..." 
    } 
    ], 
    "paging": { 
    "previous": "https://graph.facebook.com/v2.8/.../feed?fields=message,attachments&format=json&since=...&access_token=...&limit=25&__paging_token=enc_...&__previous=1", 
    "next": "https://graph.facebook.com/v2.8/.../feed?fields=message,attachments&format=json&access_token=...&limit=25&until=...&__paging_token=enc_..." 
    } 
} 
+0

それでは、 'console.log(attachment);'はあなたが出力したものですか?コードが正しく貼り付けられていますか?どの出力が生成されるかをより良く表示するようにコードを拡張してください。 – xDreamCoding

答えて

0

あなたはgetPostPicture機能のループに使用している場合は、変数iは、実際には配列feedDataの要素であるので、あなたはi.idまたはi.attachmentsi.messageに持っています。また、私はあなたが2ループで同じjを使用しているので、もう1つはネストされていて、それも正しく動作しないので、それも変更しなければならないかもしれないと思います。

関連する問題