LUCK!

こんにちは、初めまして。エンジニアの杉本翔平です。

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して取得してあげた方がより汎用的です。 そのほかの環境変数bitlydeveloper.twitter.comから簡単に取得できます。