GoogleCloudFunctionsを使うと任意の関数を実行できるため、twitterフォローの自動化などをおこなうことができます。まずはじめにGoogleCloudFunctionsに関しての基礎的なことをはあくするのに結構時間がかかるので、そのあたりをまずは解説していきたいと思います。
GoogleCloudFunctionsとはなにか?
GoogleCloudFunctionsはGoogle Cloud Platform(GCP)のサービスのひとつです。ここでGCPがまずなんなのかを知っておく必要があります。GCPはGoogleが提供するクラウドサービスです。このGCPのサービスのひとつにGoogleCloudFunctionsがあります。
CloudFunctionsを使ってtwitter自動フォローするには?
CloudFunctionsを使ってtwitterの自動フォローするには以下のような手順が必要です。
- Twitter自動フォローのスクリプトを作成する(pythonを使うのがよいです)
- CloudFunctionsで関数を作成する
- CloudSchedulerでCloudFunctionsで作成した関数を定期実行させる
ここでまた新しいたキーワードCloudSchedulerというものがでてきました。CloudSchedulerもGCPのサービスのひとつになります。
実際にCloudFunctionsでtwitter自動フォローをしてみよう
GCPの無料トライアル参加は済んでいるものとして話をすすめていきます。
スクリプトの作成
スクリプトはローカルのエディターで作成してもよいのですが、最終的にはCloudFunctionsの関数として登録する必要があります。スクリプトの作成は以下を参考にしてみてください。
【tweepy】pythonで特定ユーザーのフォロワーを自動フォローする
CloudFunctionsで関数を作成する。
早速ですがCloudFunctionsで関数を作成しましょう。トリガーをCloud Pub/Subにします。次にトピックを選択します。トピックを選択するのは非常に重要なことで、CloudSchedulerからCloudFunctionsの関数を定期実行させたい場合は必須の設定になります。
今回はpythonの関数を作成するのでランタイムにpython3.7を使用します。
次にコードを記述するわけですが、ここがおそらく非常にわかりにくいと思われます。画像はデフォルトで作成されている関数のままですが、ここはTwitter自動フォローのコードに書き換える必要があります。
ややこしいのは「実行する関数」という項目で、ここはコード内に記述されている関数を記入する必要があります。通常であれば、プログラムの実行する本体の関数は def main():などで書くと思いますのでその場合は「実行する関数」の項目にはmainと記入します。
次にREQUIREMENTS.TXTです。ここは使用する外部モジュールがあった場合に記述する必要があります。たとえば今回のTwitter自動フォロープログラムには「tweepy」を使用しているので tweepy>=3.8.0 の記述が必要です。
実行する関数に引数を2つあたえる理由
画像を見るとわかるのですが実行する関数に引数が2つ設定されているのがわかると思います。引数を2つ設定する理由は正直よくわかっていないのですが、バックグラウンドで実行される関数には必ず引数が必要なようです。
引数がない状態で実行すると、プログラムのエラーがでるのを確認しましたが、スタックオーバーフローにも似たような質問があがっていたので解決にいたりました。↓
CloudSchedulerで定期実行させる
こちらの画像はCloudSchedulerですでにスケジュールを作成したものですが、新規作成時もこのような画面が表示されますので、この画像をもとに説明したいと思います。
まずタイムゾーンは日本にします。定期実行の頻度は説明をはぶきます。(画像のとおりです。)次にターゲットをPubSubにします。(これにしないとトピックがえらべないからです。)
次が非常に重要なトピックです。このトピックというのはさきほどCloudFunctionsで関数を作成するときに入力したトピックと同じものを記入するようにしましょう。これでCloudFunctionsの関数とCloudSchedulerが紐づくというわけですね。
Schedulerが成功したかどうかを確認する
SchedulerがうまくいったかどうかはGoogleCloudSchedulerの管理画面から確認することができます。筆者は以上の方法で実際に自動フォロー化することに成功しました。
GCPの料金に注意しよう
GoogleCloudPlatformのサービスは過度な使い方をしないかぎり、請求がくることはないと思われますが、万が一請求が発生してもよいように予算アラートを設定しておきましょう。
コメント