Azure Functions でKintoneに登録された情報を元に、Twitter自動投稿するBotを作ってみた
冬休みを利用して、Azure Functionsを利用したTwitter 自動投稿Bot を作っていました。
本当はAzure FunctionsのTimer Triggerでもよかったんですが
後々外部から叩くこともあるかなぁっていうのと、Azure FunctionsだけにTimerの依存を増やすのもいやだなぁというので、Azure Schedulerで実行する方式にしました。
どんな感じに動くの?
Kintoneには以下のようにツイートするデータを管理するアプリを作っています。
あと、二重投稿防止と、ツイートが偏らないようにするための最終投稿日のフィールドを持たせています。
これを元に、私のタイムラインへ以下のように投稿されます。
環境および使ったもの
Azure Functions C# .NET(Coreでは無い)
Azure Scheduler(上のAzure Functions をHTTP Trigerで構成して、Schedulerからキックしています)
KintoneとTwitterのリクエストには、CData ADO.NET Driverを利用しました。
Azure Functionsのプロジェクトに以下のDLLを参照しておいてください。
C:\Program Files\CData\CData ADO.NET Provider for Twitter 2017J\lib\System.Data.CData.Twitter.dll
C:\Program Files\CData\CData ADO.NET Provider for kintone 2017J\lib\System.Data.CData.Kintone.dll
一つ注意したいのは、Azure Functionsにアップするに当たって、DLLのプロパティで[ローカルにコピー]をTrueにしておきことですね。
これだけで、以下のようにTwitterへの投稿も手軽に実施できます。
ソースコード
Githubにソースコードをアップしているので、参考までにどうぞ。
将来的にやりたいこと
今回はただ自動投稿するBotだったので、最終的にはいいね!の数を計測して、自動的に評判のいい投稿を自動的に実施してくれるようなものにしたいなぁという野望を頂いています。
Azure Congnitive Service の Recommend APIとか使えないかなぁあと。