Twitterに写真をアップロードしようとしています。私はマルチパートライターを作成し、その名前のメディアを使用してファイルフィールドを作成しますが、私がTwitterにリクエストを送信すると、メディアフィールドの不足に応答しています。 何か不足していますか?ただ、Twitter API Upload parameterを呼ば:ここに は私のコードはマルチパートファイルフィールドが読み取れません
f, err := os.Open("/Users/nikos/Desktop/test.png")
errored:
if nil != err {
fmt.Println(err)
return
}
var img = new(bytes.Buffer)
enc := base64.NewEncoder(base64.StdEncoding, img)
_, err = io.Copy(enc, f)
if nil != err {
goto errored
}
body := new(bytes.Buffer)//Multipart body
writer := multipart.NewWriter(body)
cl, err := twitter.OauthClient.MakeHttpClient(&oauth.AccessToken{
Token: "xxx",
Secret: "yyy",
})
err = writer.WriteField("media_data", img.String())//base64 version of the image (i tried both binary and base64 versions neither will work)
if nil != err {
goto errored
}
part, err := writer.CreateFormFile("media", "test.png")//actual binary file multiparted and it is named media.
if nil != err {
goto errored
}
_, err = io.Copy(part, f)
if nil != err {
goto errored
}
req, err := http.NewRequest("POST",
"https://upload.twitter.com/1.1/media/upload.json",
body)
if nil != err {
goto errored
}
res, err := cl.Do(req)
if nil != err {
goto errored
}
//and twitter responds that there is no field attached named media
_, err = io.Copy(os.Stdout, res.Body)
fmt.Println(res)
if nil != err {
goto errored
}
あなたが見ているエラーは何ですか? –
@CeriseLimón私は一度に1つずつ送信しましたが、一緒に書きましたが、作者を閉じようとしました。コンテンツタイプを設定すると、悪いリクエストエラーが発生しました。私はライターを閉じてみます。 – nikoss
@YandryPozo '{" errors " }}}&{400 Bad Request 400}これは私が受け取るエラーです – nikoss