gpt4 book ai didi

python - 使用 Python API 将图片上传到 facebook

转载 作者:行者123 更新时间:2023-11-28 16:28:39 28 4
gpt4 key购买 nike

我在网上广泛搜索了通过 Python API ( Python for Facebook ) 将照片上传到 facebook 的仍然有效的示例。像这样的问题以前在 stackoverflow 上被问过,但我找到的答案都没有用了。

我得到的工作是:

import facebook as fb

cfg = {
"page_id" : "my_page_id",
"access_token" : "my_access_token"
}

api = get_api(cfg)
msg = "Hello world!"
status = api.put_wall_post(msg)

我在这里定义了 get_api(cfg) 函数

graph = fb.GraphAPI(cfg['access_token'], version='2.2')

# Get page token to post as the page. You can skip
# the following if you want to post as yourself.
resp = graph.get_object('me/accounts')
page_access_token = None
for page in resp['data']:
if page['id'] == cfg['page_id']:
page_access_token = page['access_token']
graph = fb.GraphAPI(page_access_token)
return graph

这确实向我的页面 发布了一条消息。但是,如果我想上传图片,一切都会出错。

# Upload a profile photo for a Page.
api.put_photo(image=open("path_to/my_image.jpg",'rb').read(), message='Here's my image')

我遇到了可怕的 GraphAPIError: (#324) Requires upload file stackoverflow 上的所有解决方案都不适合我。如果我改为发出以下命令

api.put_photo(image=open("path_to/my_image.jpg",'rb').read(), album_path=cfg['page_id'] + "/picture")

我得到 GraphAPIError: (#1) Could not fetch picture 我也找不到解决方案。

有人可以给我指出正确的方向,为我提供一个当前有效的例子吗?将不胜感激,谢谢!

最佳答案

324 Facebook 错误可能由一些原因引起,具体取决于照片上传调用的方式

  • 丢失的图片
  • Facebook 无法识别的图片
  • 不正确的目录路径引用

一个原始的 cURL 调用看起来像

curl -F 'source=@my_image.jpg' 'https://graph.facebook.com/me/photos?access_token=YOUR_TOKEN'

只要上述调用有效,您就可以确定照片与 Facebook 服务器一致。

324 错误如何发生的示例

touch meow.jpg

curl -F 'source=@meow.jpg' 'https://graph.facebook.com/me/photos?access_token=YOUR_TOKEN'

如您所见,损坏的图像文件也会发生这种情况。

使用 .read()将转储实际数据

空文件

>>> image=open("meow.jpg",'rb').read()
>>> image
''

图片文件

>>> image=open("how.png",'rb').read()
>>> image
'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00...

这两个都不适用于调用 api.put_photo如您所见,Klaus D. 提到调用应该没有 read()

所以这个电话

api.put_photo(image=open("path_to/my_image.jpg",'rb').read(), message='Here's my image')

实际上变成了

api.put_photo('\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00...', message='Here's my image')

这只是一个字符串,这不是我们想要的。

需要图像引用 <open file 'how.png', mode 'rb' at 0x1085b2390>

关于python - 使用 Python API 将图片上传到 facebook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34393982/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com