希望能得到一些错误的帮助。我能够对用户墙进行身份验证和发布文本(因此我认为我已经过适当的身份验证)。
我使用的代码如下:
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的有效性。
答案 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