Go Anaconda 推特媒体上传推文

我可以发推文和上传媒体,但我不知道如何使用 anaconda("github.com/ChimeraCoder/anaconda") 与媒体一起发推文。示例中的 media_id 来自成功的媒体上传调用。


mediaResponse, err := api.UploadMedia("R0lGODlhEAALALMMAOXp8a2503CHtOrt9L3G2+Dl7vL0+J6sy4yew1Jvp/T2+e/y9v///wAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFCwAMACwAAAAAEAALAAAEK5DJSau91KxlpObepinKIi2kyaAlq7pnCq9p3NZ0aW/47H4dBjAEwhiPlAgAIfkECQsADAAsAAAAAAQACwAABA9QpCQRmhbflPnu4HdJVAQAIfkECQsADAAsAAAAABAACwAABDKQySlSEnOGc4JMCJJk0kEQxxeOpImqIsm4KQPG7VnfbEbDvcnPtpINebJNByiTVS6yCAAh+QQJCwAMACwAAAAAEAALAAAEPpDJSaVISVQWzglSgiAJUBSAdBDEEY5JMQyFyrqMSMq03b67WY2x+uVgvGERp4sJfUyYCQUFJjadj3WzuWQiACH5BAkLAAwALAAAAAAQAAsAAAQ9kMlJq73hnGDWMhJQFIB0EMSxKMoiFcNQmKjKugws0+navrEZ49S7AXfDmg+nExIPnU9oVEqmLpXMBouNAAAh+QQFCwAMACwAAAAAEAALAAAEM5DJSau91KxlpOYSUBTAoiiLZKJSMQzFmjJy+8bnXDMuvO89HIuWs8E+HQYyNAJgntBKBAAh+QQFFAAMACwMAAIABAAHAAAEDNCsJZWaFt+V+ZVUBAA7")

if err != nil {

    fmt.Println(err)

}


//v := url.Values{}

//v.Set("media_ids", string(mediaResponse.MediaID))

fmt.Println(mediaResponse)

tweet := `

"media_ids": 612877656984416256,

"status": "hello"

`


result, err := api.PostTweet(tweet, nil)

if err != nil {

    fmt.Println(err)

} else {

    fmt.Println(result)

}

有人可以协助告诉我如何解析 json 或使用媒体 ID 调用 PostTweet 吗?我也尝试将媒体添加到 url.Values 没有成功。


繁华开满天机
浏览 183回答 2
2回答

斯蒂芬大帝

我看到 json 无效,但问题是传递 media_ids 参数时出错。响应是:"errors":[{"code":44,"message":"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)}

猛跑小猪

这不是有效的 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"}与使用原始字符串相比,这有一些好处。它更以 Go 为中心。该结构可以通过设置的值传递,并通过在编译时捕获的正确类型检查来读取。生成的 json 字符串在语义上更有可能是正确的。例如,Go 也会对某些字符进行转义,以帮助确保接收器正确解析它们。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go