繁体   English   中英

如何使用 python 请求在媒体组中发送带有 multipart/form-data 的照片?

[英]How to send photos with multipart/form-data in media group with python requests?

json = {"chat_id":chat_id, "media":[{"type" : "photo", "media" : "attach://photo1.jpg"}, {"type" : "photo", "media" : "attach://photo2.jpg"}]}

files = {"photo1.jpg" : open(r"../photo1.jpg", 'rb'), "photo2.jpg" : open(r"../photo2.jpg", 'rb')}

temp = r.post("https://api.telegram.org/bot<TOKEN>/sendMediaGroup", json=json, files=files)

print(temp.json())

我不断收到此响应: {'ok': False, 'error_code': 400, 'description': 'Bad Request: parameter "media" is required'}

如何使用 multipart/form-data 发送带有photo.jpgsendMediaGroup

我建议使用带有自定义字典的data

那么你唯一应该注意的是data内部的media数组,应该是使用 json.dumps 编码的json.dumps

所以代码变成了:

import json
import requests as r

#####
chat_id = 1010011
TOKEN = 'ABCDEF....'
#####

data = {
    "chat_id": chat_id,
    "media": json.dumps([
        {"type": "photo", "media": "attach://photo1.png"},
        {"type": "photo", "media": "attach://photo2.png"}
    ])
}

files = {
    "photo1.png" : open("./photo1.png", 'rb'),
    "photo2.png" : open("./photo2.png", 'rb')
}

temp = r.post("https://api.telegram.org/bot" + TOKEN + "/sendMediaGroup", data=data, files=files)

print(temp.json())

电报桌面的结果:
在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM