使用Python中的GraphAPI在FB中发布照片

时间:2017-10-11 17:44:45

标签: python image facebook facebook-graph-api post

现在我的工作是宣传各种业务。 为了做到这一点,我需要在多个Facebook群组中发布不同的产品,但这几乎占用了我所有的时间,所以我正在尝试开发自己的后机器人,所以我可以在所有特定的本地发布我想要的任何东西Facebook群组立即。

我可以在Feed中发布文字,但无法使代码发布带有文字的图片。 我收到这个错误:

  

追踪(最近一次呼叫最后一次):

     

文件“C:\ Users \ Ventas \ Desktop \ Post2.py”,第31行,in       graph.put_object(parent_object = group_id,connection_name ='photos',caption = titulo,message = mensaje,source = foto)文件   “C:\ Python27 \ lib \ site-packages \ facebook__init __。py”,第144行,in   put_object       method =“POST”)文件“C:\ Python27 \ lib \ site-packages \ facebook__init __。py”,第272行,in   请求       提升GraphAPIError(结果)GraphAPIError:(#324)需要上传文件

我不知道我做错了什么,这是我的代码:

#SETUP Photo with file selection dialog
Tkinter.Tk().withdraw()
dir = tkFileDialog.askopenfilename()
photo = open(dir, "rb").read()

#POST IN GROUPS
for group_id in groups:
    print("Posting to " + 'https://www.facebook.com/groups/' + str(group_id))
    graph.put_object(parent_object=group_id, connection_name='photos', caption=titulo, message=mensaje, source=photo)

3 个答案:

答案 0 :(得分:1)

好的,我尝试过selenium,这是facebook上的一个人推荐我的东西,但它没有用,所以我回到了python。 我正在玩api,但文档在如何专门发布组中并不是很清楚。 所以我开始浏览谷歌最深层次的部分并找到 THIS

它使我能够达到代码的结论,这是一个疯狂的解决方案! :D(OMG FINALLY)我已经做了4天这件事。

我刚刚改变了这个:

^[0-9]*$

对此:

graph.put_object(parent_object=group_id, connection_name='photos', caption=titulo, message=mensaje, source=photo)

另外我注意到原始文档说值“album_path”应该是:

graph.put_photo(image=photo, message=mensaje, album_path=group_id + "/photos")

但这只是页面的严格和严格。 对团体来说似乎是:

album_path=group_id + "/pictures" 

感谢任何至少阅读我的问题的人,非常特别感谢Facebook的“JérémydeGail”和“Amit Singh”用户,因为没有人打扰甚至试图帮助我。 这段代码对我的工作非常重要。

希望我自己的答案可以帮助将来的某个人。 关心大家! :D

答案 1 :(得分:0)

尝试将图片放在您拥有.py脚本的同一文件中。 然后,做:

hidden

而不是:

photo = "nameofyourpic.jpg"

答案 2 :(得分:0)

从新的 API 版本开始,您不能再通过本地路径上传图片,而是通过相对 URL(图片存储在服务器上)。

graph.put_object(parent_object=group_id, connection_name='photos', caption=titulo, message=mensaje, source="https://1.bp.blogspot.com/-VqCH72pVnok/X-WgDpD5jSI/AAAAAAAA20E/pLCoCXR_7tsme8etcjYAOJhNa9GdPh4ewCLcBGAsYHQ/w640-h428/iherb_holiday.png")