使用 Python 通过 GroupMe 的图像服务路由图像

Routing an image through GroupMe's image service with Python

我正在使用 requests 向 GroupMe 的图像服务发出 POST 请求,该请求应该 return 我可以使用 URL 的托管图像 post 到 GroupMe 线程。 documentation 提到我需要我的访问令牌和有效负载中的二进制图像数据才能执行此操作。

这是一个非常简单的示例,说明我的代码目前看起来如何:

import requests

access_token = 'my_access_token'
img_path = 'picture_name.jpg'

img_service_url = 'https://image.groupme.com/pictures'

r = requests.post(img_service_url, files={'file': img_path})

编辑:

我查看了 groupy.api.endpoint 模块 Groupy(https://groupy.readthedocs.io/en/v0.6.2/_modules/groupy/api/endpoint.html#Images) 的文档和源代码并更新了我的脚本(如上所示)以使用相同的 requests 函数参数,但没有用。现在代码 return 是 500.

这对我有用(avatar.jpeg 与我下面的 testing.py 代码在同一个文件夹中)

# curl 'https://image.groupme.com/pictures'
# -X POST
# -H "X-Access-Token: $GM_TOKEN"
# -H "Content-Type: image/jpeg"
# --data-binary @AwesomePicture.jpg

import requests

data = open('./avatar.jpeg', 'rb').read()
res = requests.post(url='https://image.groupme.com/pictures',
                    data=data,
                    headers={'Content-Type': 'image/jpeg',
                             'X-Access-Token': 'ACCESS_TOKEN'})
print(res.content)

输出

b'{"payload":{"url":"https://i.groupme.com/100x100.jpeg.5b71f15633f6454ca6a3a6b3e267a3fb","picture_url":"https://i.groupme.com/100x100.jpeg.5b71f15633f6454ca6a3a6b3e267a3fb"}}\n'