我可以推特,上传媒体,但我无法弄清楚如何使用anaconda与媒体发推文(" github.com/ChimeraCoder/anaconda")。示例中的media_id来自成功的媒体上传调用。
if input_A == True:
print('A was pushed')
break
有人可以协助告诉我如何解析json或使用媒体ID调用PostTweet吗?我也尝试过将媒体添加到url.Values而没有成功。
答案 0 :(得分:3)
谢谢大家。我看到json无效,但问题是传递media_ids参数时出错。答案是:"错误":[{"代码":44,"消息":" media_ids参数无效。"}]我虽然错误的格式化但它不得不做没有正确地将media_ids类型int64转换为字符串。这是固定代码:
data, err := ioutil.ReadFile(fileName)
if err != nil {
fmt.Println(err)
}
mediaResponse, err := api.UploadMedia(base64.StdEncoding.EncodeToString(data))
if err != nil {
fmt.Println(err)
}
v := url.Values{}
v.Set("media_ids", strconv.FormatInt(mediaResponse.MediaID, 10))
result, err := api.PostTweet(posttitle, v)
if err != nil {
fmt.Println(err)
} else {
fmt.Println(result)
}
答案 1 :(得分:1)
这是无效的json:
tweet := `
"media_ids": 612877656984416256,
"status": "hello"
`
尝试使用它来生成你的json:
type Tweet struct {
MediaIds uint64 `json:"media_ids"`
Status string `json:"status"`
}
tweet := Tweet{612877656984416256, "hello"}
b, err := json.Marshal(tweet)
这导致:
{"media_ids":612877656984416256,"status":"hello"}
这比使用原始字符串有一些好处。