通过python和graphapi将图像发布到facebook

时间:2014-04-30 02:09:59

标签: python image facebook-graph-api

希望能得到一些错误的帮助。我能够对用户墙进行身份验证和发布文本(因此我认为我已经过适当的身份验证)。

我使用的代码如下:

self.client = GraphAPI(ACCESS_TOKEN)
self.client.put_photo(open("test.jpg"), "test post from app - please ignore")

我收到以下错误:

Traceback (most recent call last):
  File "J:\Projects\python Code\pyhton test programs\upload posts to facebook v3.py", line 69, in OnFacebookPublishButton
    self.client.put_photo(open("test.jpg"), "test post from app - please ignore")
  File "C:\Python27\lib\site-packages\facebook.py", line 231, in put_photo
    raise GraphAPIError(response)
facebook.GraphAPIError: Your photos couldn't be uploaded. Photos should be saved as JPG, PNG, GIF, BMP or TIFF files.

我已经使用windows explore,ACDSee,Photoshop,Paint和Faststone验证了jpg的有效性。

1 个答案:

答案 0 :(得分:1)

试试这个:

self.client = GraphAPI(ACCESS_TOKEN)
with open("test.jpg","rb") as image:
    self.client.put_photo(image, "test post from app - please ignore")

open函数有几个参数,其中一个参数是打开的模式,你的错误很可能就是你没有在文件名之后指定打开模式。

另一个重要的事情是,当你打开一个文件时,你还需要关闭它,所以你的代码在它似乎没有包含.close()函数调用这一事实时会动摇。

在我的建议中,我将图像打开为读取(二进制)模式,并使用with语句来避免结束语句。

我建议你花一些时间通过阅读官方文档来了解开放功能 https://docs.python.org/2/library/functions.html#open