golangでanacondaを利用してTwitterにつぶやく
golangでanacondaを利用してTwitterにつぶやくきます。
今回は別サービスのリンク共有のためのつぶやきなので、go-bitlyで短縮URLを作成してつぶやきに付与します。
package main import ( "fmt" "net/http" "os" "github.com/ChimeraCoder/anaconda" "github.com/pkg/errors" bitly "github.com/zpnk/go-bitly" "github.com/labstack/echo" ) func main() { api := getTwitterAPI() // ハッシュタグを生成 hashTagStr := "#ハッシュタグ" //文章 sentence := "ツイートしたい文章" //url url := os.Getenv("YOUR_URL") addURL, err := shortURL(url) if err != nil { fmt.Println(err) } tweetStr := fmt.Sprintf("%s\r\n%s\r\n↓↓↓共有URL↓↓↓\r\n%s\r\n", hashTagStr, sentence, addURL) // post twt, err := api.PostTweet(tweetStr, nil) if err != nil { fmt.Println(err) } return c.JSON(http.StatusOK, twt) } //getTwitterAPI . func getTwitterAPI() *anaconda.TwitterApi { anaconda.SetConsumerKey(os.Getenv("TWITTER_CONSUMER_KEY")) anaconda.SetConsumerSecret(os.Getenv("TWITTER_CONSUMER_SECRET")) return anaconda.NewTwitterApi(os.Getenv("TWITTER_TOKEN"), os.Getenv("TWITTER_SECRET")) } //shortURL . func shortURL(urlStr string) (string, error) { b := bitly.New(os.Getenv("BITLY_TOKEN")) link, err := b.Links.Shorten(urlStr) if err != nil { return urlStr, err } return link.URL, nil }
非常に簡単。
環境変数
環境変数については適宜設定してください。
YOUR_URL : 短縮したいURL TWITTER_CONSUMER_KEY : TWITTER_CONSUMER_KEY TWITTER_CONSUMER_SECRET: TWITTER_CONSUMER_SECRET TWITTER_TOKEN : TWITTER_TOKEN TWITTER_SECRET : TWITTER_SECRET BITLY_TOKEN : BITLY_TOKEN
TWITTER_TOKENとTWITTER_SECRETはログインしているユーザ次第なので、環境変数ではなくPOSTして取得してあげた方がより汎用的です。 そのほかの環境変数はbitlyとdeveloper.twitter.comから簡単に取得できます。