Маршрутизация изображения через сервис изображений GroupMe с Python - PullRequest
0 голосов
/ 07 января 2019

Я использую requests, чтобы сделать POST-запрос к сервису изображений GroupMe, который должен вернуть URL размещенного изображения, который я могу использовать для публикации в ветке GroupMe. документация упоминает, что для этого мне нужен токен доступа и данные двоичного изображения в полезной нагрузке.

Вот очень простой пример того, как мой код для этого сейчас выглядит:

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})

EDIT:

Я посмотрел документацию и источник для модуля groupy.api.endpoint Groupy (https://groupy.readthedocs.io/en/v0.6.2/_modules/groupy/api/endpoint.html#Images)) и обновил свой скрипт (как показано выше), чтобы использовать те же параметры функции requests, но безрезультатно. Сейчас код возвращает 500.

1 Ответ

0 голосов
/ 07 января 2019

Это сработало для меня (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)

OUTPUT

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