###用意するもの
・MAC(PC)
・AWS Lambda
・Twitter API
・Twitterアカウント
###やったこと
####1.Twitter API申請
下記URLからTwitter API申請をします。
https://developer.twitter.com/ja/docs
API key & secretとAccess token & secretを取得します。
####2.Go言語で書く
Twiiter認証用のソースコードを書きます。
別にファイルは分けなくてもいいです。
package keys
import
(
//Twitter APIに必要なimportになります。なければインストールしましょう。
"github.com/ChimeraCoder/anaconda"
)
func GetTwitterApi() *anaconda.TwitterApi {
anaconda.SetConsumerKey("API Key")
anaconda.SetConsumerSecret("API secret Key")
api := anaconda.NewTwitterApi("token", "token secret")
return api
}
ツイート本文のソースコードを書きます。
これも別にファイル分けなくてもできます。
日付とテキストをツイートするようにしています。
package text
import (
"fmt"
"time"
)
func TextTweet() string {
//tweetする文章を書くよ
tweetText := "test"
d := time.Now().Day()
m := time.Now().Month()
//ツイートする文章を格納する。
TweetContent := tweetText
TweetOfToday := fmt.Sprintf("【%d月%d日】\n %s", m, d, TweetContent)
return TweetOfToday
}
実際にツイートするソースを書きます。
package main
import (
"fmt"
. "fmt"
. "./keys"
. "./text"
)
func main(){
api := GetTwitterApi()
text := TextTweet()
tweet, err := api.PostTweet(text, nil)
if err != nil {
panic(err)
}
Print(tweet.Text)
fmt.Println("Finish!")
}
ちなみにフォルダ構成は以下です。
autoTweet
∟main.go
∟keys
∟keys.go
∟text
∟text.go
####3.AWS Lambdaで実行させる
AWS LambdaにGoソースコードをzipファイルにしてアップロードします。
↓がとても参考になりました。
https://dev.classmethod.jp/articles/aws-lambda-supports-go/
AWS Lambdaにアップロードして実行するにはバイナリファイルが必要です。
私は1つのファイル(main.go)にまとめてバイナリファイルにしました。
バイナリファイル作成コマンドは↓です。zipにするのはバイナリファイルのみで大丈夫です。
#GOOS=linux GOARCH=amd64 go build main.go
バイナリファイルが作成がエラーになった場合は、下記試してみてください。
#go get -u golang.org/x/sys/unix
#set GOOS=linux
#set GOARCH=amd64
#set CGO_ENABLED=0
Lambdaでテストしてみて実行エラーにならなかったらツイッター見にいきましょう!
ツイートされているはずです!
####4.CloudWatchEventsでLambdaを定期実行する。
CloudWatchEventsのCron式でLambdaを定期実行させます。
Cron式は2ヶ月に一度とか、設定次第で好きな時間に実行できます。
参考URL:https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/services-cloudwatchevents-expressions.html
参考に毎日12時に実行するcron式記載しておきます。 (UTCのため-9時間になります)
crons式:
00 3 * * ? *
####5.ツイート確認
設定した時間になってツイートされてたらOK!
かなり雑に書いてしまいましたが、誰かの参考になれば幸いです。。。