インスタグラム広告をクロールする Web サービスを構築中です。不可解な API のドキュメントにある REST 要求を介して機能の方法をマッピングし、認証が大量に行われ、古い命名規則と新しい命名規則 (たとえば、広告グループと広告) が混在した後、最終的に 1 つの非常に重要な呼び出しにたどり着きました。挙動がおかしい。私は説明する:
まず、議論のために、次の呼び出しを行いました。
https://graph.facebook.com/v2.6/<adcreative_id>?fields=comment_count,like_count&access_token=<my_token>
それは美しく機能し、次のような結果が得られます。
{
"comment_count": 4,
"like_count": 175,
"id": "<adcreative's_id>"
}
広告クリエイティブのコメントに到達すると、決定論的に次の 2 つのうちのいずれかが発生します。次の呼び出しを送信するとします。
https://graph.facebook.com/v2.6/ /comments?fields=message,created_at,comment_type,instagram_user&access_token=
(1) 投稿にキャプション (API はコメントとしても認識されます) しかない場合、次のような完全に適切な返信が送信されます。
{
"data": [
{
"message": "here goes the actual ad's caption, as written by the advertiser",
"created_at": "2016-04-22T18:36:01+0000",
"instagram_user": {
"id": "0123456789"
},
"comment_type": "CAPTION",
"id": "<actual_comment_id>"
}
]
}
(2)投稿に実際のコメント(コメントを数えないゼロより大きい任意の数CAPTION
)がある場合、私は常に空の応答を受け取ります:
{
"data": [
]
}
認証時にユーザーに付与するように求めるアクセス許可を再確認しましたが、現在ads_management
は 、ads_read
、page_management
およびread_insights
です。AdAccount
また、Ads API の使用を関係者に許可していることも確認しました。最後に、ログインしている im が、読み込もうとしUser Account
ている広告主の権利を持っていることも確認しました。AdAccount