2017-09-28 10 views
0

私のスクリプトは、特定の要件を満たす親の投稿のすべてのコメントにコメントを投稿しようとしています。テキストを確実に投稿することができましたが、写真の添付ファイルが表示されないようです。私はPython3でプログラミングしており、Facebook-SDKライブラリを使って支援しています。グラフのAPI投稿写真の添付で

Iが見出さグラフAPIドキュメントを読み取るときコメント縁に説明次のフィールド:

は未公開写真のオプションIDが(/ {ユーザID}でno_storyフィールドを参照attachment_id

/写真)をFacebookにアップロードして写真のコメントとして追加します。パブリッシュ時にattachment_url、attachment_id、messageまたはsourceのいずれかを指定する必要があります。 (文字列)

attachment_url

画像のURLは、写真のコメントとして含めることができます。パブリッシュ時にattachment_url、attachment_id、messageまたはsourceのいずれかを指定する必要があります。 (列)

ソース

フォームデータとしてエンコード写真は、写真のコメントとして使用します。パブリッシュ時にattachment_url、attachment_id、messageまたはsourceのいずれかを指定する必要があります。 (マルチパート/フォームデータ)

私のコードは、現在、(私はこの問題に関連する部分のコードを提供してきました)などとしてフォーマットされています

my_dict = { 
    0: ('file_1.JPG', "Some text for file 1"), 
    1: ('file_2.jpg', "Different text for file 2"), 
    2: ('file_3.JPG', "More different text for file 3"), 
    3: ('file_4.JPG', "A fourth bit of text for file 4.") 
} 

comments = api.get_object('PAGE.NUMBER.HERE?fields=posts{comments}') 
com_index = comments['posts']['data'][0]['comments']['data'] 
photo_id = my_dict[x][0] 
my_image = 'file:///Users/filepath/{}'.format(photo_id) 
text = my_dict[x][1] 
api.put_object(com_index[com_index]['id'], "comments/comments", source=(my_image, 'image/jpg'), message=text) 

私は 'でとない場合の両方試してみましたソースタプルの「image/jpg」引数

の代わりに私も試してみた「ソース」使用:

attachment_url=card_image 
attachment=card_image 

attachment_urlを使用している場合、私は、無効なURLのエラーを取得します。他のパラメータを使用すると、テキストは常にポストされますが、写真はポストされません。

最後には、私の代わりに別のコメントの/コメントエッジのコメントの/写真エッジとエッジを変更しようとしたが、それでも(下記のように)運:

api.put_object(com_index[comment]['id'], "comments/photo", source=(my_image, 'image/jpg'), message=text) 

は何ではありません写真を添付し​​た返信を投稿する適切な方法はありますか?

答えて

0

私は{objet-id}/commentsは、バージョン2.10以降減価償却されると思います。チェックthisを確認します。

+0

私は読んで、笑の束の後、その上でその警告を見ました。バマー。しかし、私はまだテキストを投稿するコメントを得ることができるので、それはまだ動作するように見える、私はちょうど写真を正しく添付することができません。/commentsの縁が非難された場合、私はコメントをテキストを投稿するのに成功していると思いますか? – Hanzy

+0

調査したところ、プライベート返信を送信するためにスクリプトを実装する必要があるようでした(私が最初に考えたもの)。添付ファイルや写真の引数をプライベート返信に渡すことは可能ですか?ドキュメントは添付ファイルのフィールドをリストしていないので私は推測しませんが、あなたは私が信じているfbメッセンジャーで写真を送ることができます:https://developers.facebook.com/docs/graph-api/reference/v2.10/object/private_replies – Hanzy

0

私は、Pythonの男ではないんだけど、多分これはとにかく働いている;)

my_dict = { 
    0: ('file_1.JPG', "Some text for file 1"), 
    1: ('file_2.jpg', "Different text for file 2"), 
    2: ('file_3.JPG', "More different text for file 3"), 
    3: ('file_4.JPG', "A fourth bit of text for file 4.") 
} 

comments = api.get_object('PAGE.NUMBER.HERE?fields=posts{comments}') 
com_index = comments['posts']['data'][0]['comments']['data'] 
photo_id = my_dict[x][0] 
my_image = 'file:///Users/filepath/{}'.format(photo_id) 

photo = open(my_image) 
text = my_dict[x][1] 

api.put_object(com_index[com_index]['id'], "comments/comments", source=photo.read(), message=text) 
photo.close() 
+0

私は、画像オブジェクトをAPIに渡すために枕を使用して画像オブジェクトを作成することを検討しました。それはあなたの提案と同様のアプローチなので、試してみます。私はオブジェクトの代わりにファイルパスを渡す必要があると仮定していますが、試してみる価値があります。 – Hanzy

+0

私の間違いは、オブジェクトを表示するメソッドをオブジェクトに渡すことを考えていないことを意味しました。しかし、私は試してみます – Hanzy

関連する問題