我是 golang 新手,我正在尝试编写一个函数,为我正在编写的机器人上传带有发布请求的文件到电报。
我尝试过使用这段代码,但我从电报中得到的错误是Bad Request: there is no photo in the request
.
我在网上搜索了如何做到这一点,但我发现的任何内容都无法帮助我解决问题。
func SendPostRequest (url string, filename string) []byte {
file, err := os.Open(filename)
if err != nil {
log.Fatal(err)
}
defer file.Close()
response, err := http.Post(url, "binary/octet-stream", file)
if err != nil {
log.Fatal(err)
}
defer response.Body.Close()
content, err := ioutil.ReadAll(response.Body)
if err != nil {
log.Fatal(err)
}
return content
}
我调用 SendPostRequest 的函数是
func (e Engine) SendPhoto (filename string, chatId int64) APIResponse {
var url = fmt.Sprintf("%ssendPhoto?chat_id=%d", e.baseUrl, chatId)
var content []byte = SendPostRequest(url, filename)
var response APIResponse
json.Unmarshal(content, &response)
return response
}
编辑:
我在代码中使用的 Telegram bot api 的链接是https://core.telegram.org/bots/api
api方法是https://core.telegram.org/bots/api#sendphoto