GoでTwitter(画像付きツイート編)
以前 Go でツイートの取得や実際にツイートをしてみました
この勢いで画像付きツイートをしてみよう思うと
一筋縄ではいかなかったのでそのメモです
※前回の記事を理解しておく必要があります
画像付きツイートを1度にする方法はない
これはどういうことかというと
画像付きツイートをするには、2回 Twitter API を叩く必要があり
- 画像をアップロードする
- アップロードした画像を指定してツイート
という手順になります
画像をアップロード
まず、画像を Twitter 上にアップロードし MediaID なるものを取得する必要があります
upload_image.go
package main import ( "log" ) func main() { api := getClient() encodedImage := encoding("./tmp/image/DXWgT2bU0AAPyNv.jpg") tweet, err := api.UploadMedia(encodedImage) if err != nil { log.Fatal(err) } log.Printf("mediaID: %#v", tweet.MediaID) }
Twitter API を叩いた時のレスポンスに含まれる tweet.MediaID を保存しておきます。
MediaID を指定してツイート
先ほど保存しておいた MediaID を指定してツイートします
tweet_with_image.go
package main import ( "net/url" ) func main() { api := getClient() text := "hello world from golang" v := url.Values{} v.Add("media_ids", "3281498273489723987") // ここで先ほど保存しておいた MediaID を指定します v.Add("type", "photo") tweet, err := api.PostTweet(text, v) if err != nil { log.Fatal(err) } }
これで画像付きでツイートができます
こちらもどうぞ