・ MAC (PC) ・ AWS Lambda ・ API Twitter · Compte Twitter
Demandez l'API Twitter à partir de l'URL ci-dessous. https://developer.twitter.com/ja/docs
Obtenez la clé et le secret d'API et le jeton et le secret d'accès.
Écrivez le code source pour l'authentification Twitter. Vous n'avez pas à séparer les fichiers séparément.
keys.go
package keys
import
(
//Il s'agit de l'importation requise pour l'API Twitter. Sinon, installez-le.
"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
}
Écrivez le code source du corps du tweet. Cela peut également être fait sans séparer les fichiers. J'essaye de tweeter la date et le texte.
text.go
package text
import (
"fmt"
"time"
)
func TextTweet() string {
//J'écrirai un tweet
tweetText := "test"
d := time.Now().Day()
m := time.Now().Month()
//Stockez le texte à tweeter.
TweetContent := tweetText
TweetOfToday := fmt.Sprintf("【%d mois%j jour]\n %s", m, d, TweetContent)
return TweetOfToday
}
Écrivez la source pour tweeter.
main.go
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!")
}
À propos, la structure des dossiers est la suivante.
autoTweet
∟main.go
∟keys
∟keys.go
∟text
∟text.go
Téléchargez le code source Go sur AWS Lambda sous forme de fichier zip. ↓ a été très utile. https://dev.classmethod.jp/articles/aws-lambda-supports-go/
Vous avez besoin d'un fichier binaire pour télécharger et exécuter sur AWS Lambda. Je les ai rassemblés dans un fichier (main.go) dans un fichier binaire. La commande de création de fichier binaire est ↓. Seuls les fichiers binaires peuvent être compressés.
#GOOS=linux GOARCH=amd64 go build main.go
Si vous obtenez une erreur lors de la création d'un fichier binaire, essayez ce qui suit:
#go get -u golang.org/x/sys/unix
#set GOOS=linux
#set GOARCH=amd64
#set CGO_ENABLED=0
Testez-le avec Lambda et si vous n'obtenez pas d'erreur d'exécution, allez le vérifier sur Twitter! Cela aurait dû être tweeté!
Exécutez régulièrement Lambda avec l'expression Cron CloudWatch Events. L'expression Cron peut être exécutée une fois tous les deux mois ou à tout moment selon le paramètre. URL de référence: https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/services-cloudwatchevents-expressions.html
Pour référence, je décrirai la formule cron qui est exécutée à 12h00 tous les jours. (À cause de UTC, ce sera -9 heures)
expression crons:
00 3 * * ? *
Ce n'est pas grave si vous tweetez à l'heure fixée!
Je l'ai écrit assez grossièrement, mais j'espère que cela aide quelqu'un. .. ..
Recommended Posts