GAE/GoでLineBotをつくったよ〜
参考にしたのはこのへん
qiita.com
前までIPアドレスのWhiteListが必須だったためGAEだと渋い感じになってたけど、必要なくなったのでGAEで作るのほんと楽。
無料だと本当はReplyしかできないけど、TrialアカウントならReplyだけでなくPushもできる。
できあがりはこんなかんじ。
送られた画像をVisionAPIを使って解析、TranslateAPIを使って翻訳し(やさしい)、リプライしてます。
50人までは友達になれます。
若干苦労したとこは
画像受けとり
LineBotSDKで画像を受け取るときに、Message.OriginalContentURLからURL引っ張ってくるのではなくて
content, err := bot.GetMessageContent(message.ID).WithContext(c).Do()
でおk。
VisionAPI
VisionAPIはGAE内だと認証がいらないから
client, err := google.DefaultClient(c, vision.CloudPlatformScope)
でクライアントを生成する。
ranslateAPI
go get で"google.golang.org/api/translate/v2"をインポートして使おうとしたら、
APIキーを突っ込むところがなくてけっこう悩んだ。
service, err := translate.New(&http.Client{ Transport: &transport.APIKey{ Key: translateApiKey, Transport: &urlfetch.Transport{Context: c}, }, })
みたいにして、Httpクライアントにつっこむみたい。ふむぅ...
感想
そんなに時間かからなかったし、GAEはやっぱり楽だなあ。
GCSも簡単だった。