图表API发布评论与照片附件

时间:2017-09-28 17:58:02

标签: python facebook python-3.x facebook-graph-api

我正在尝试让我的脚本对满足特定要求的父帖的所有评论发表评论。我可以让文本可靠地发布,但我似乎无法显示照片附件。我在Python3中编程并使用Facebook-sdk库来协助。

在阅读Graph API文档时,我发现评论边缘描述了以下字段:

  

attachment_id

     

上传到Facebook的未发布照片的可选ID(请参阅/ {user-id} / photos中的no_story字段)以包含为照片评论。发布时必须提供attachment_url,attachment_id,message或source之一。   (字符串)

     

attachment_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时,我收到了无效的网址错误;当使用其他参数时,文本总是被发布但照片不会被发布。

最后,我尝试将边缘更改为评论的/ photos边缘,而不是另一条评论的/ comments边缘,但仍然没有运气(如下所示):

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

发布带照片附件的回复的正确方法是什么?

2 个答案:

答案 0 :(得分: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()

答案 1 :(得分:0)

我认为自{2.1}版以来{objet-id}/comments已弃用。检查this