BACK
|Tech
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
TWITTERTOKENとTWITTERSECRETはログインしているユーザ次第なので、環境変数ではなくPOSTして取得してあげた方がより汎用的です。 そのほかの環境変数はbitlyとdeveloper.twitter.comから簡単に取得できます。
| こちらでも公開中 | |
|---|---|
| はてなブログ | Luck! |

