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

通过python和graphapi将图像发布到facebook,python,image,facebook-graph-api,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\pyth

希望得到一些帮助与错误,我得到。我能够进行身份验证并将文本发布到用户墙(因此我认为我已经正确地进行了身份验证)

我使用的代码如下:

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是否有效。

尝试以下方法:

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语句来避免结束语句

我建议您花一些时间阅读官方文档来了解open函数

@Shaktiman感谢您的编辑,我在发布后看到了拼写错误,正在尝试修复,但无法修复,因为您比我快。谢谢您,您为我解决了它。我曾尝试过包含close的变体,但很明显这不是错误的原因,所以我没有在我的帖子中包含这些代码行。然而,我并没有想到要设置filemode,因为我发现的所有工作示例都没有包含它。再次感谢!!