GCPのサービスアカウントやCloudFlare APIの認証情報が必要です。
Twitter APIでは2次利用を許可しているのですが、本システムが適応されるのが曖昧であったため運用から1年経過して時点で運用を停止しました。
私はVRChatというゲームが好きで遊んでいます。
VRChatはUnity製のユーザーがコンテンツを作って遊ぶ,VR型SNSです。
ユーザーコンテンツは「ワールド」と「アバター」に分かれます。
ワールドはVRChat社が開発したUdonというノード型のプログラミング言語を用いて作成します。
本ツールはVRChatのワールドからツイッターを見れるようにするサービスのプログラムです。
ワールドからは制限されていますがインターネットアクセスできます。
Webから写真をダウンロードしてテクスチャ―として使うという機能があります。
Twitter APIからツイートを取得して写真を生成して配信します。
写真を壁に貼ってVRChatからTwitterを見ることができるというシステムです
#VRChat_world紹介のツイートを掲載したり、VRChatが含まれていて、いいね数が100件以上のツイートを表示したりしていました。
Twitter
↑エントリポイントがあるメインプロジェクトです
定期的にポーリングを行い写真を生成する、コンソールアプリです。
Linuxで動作させるのが基本なため、Systemdが出力を保存するためログ機能は実装しませんでした。
例外が発生した場合はDiscord APIを利用して例外情報をスマホに通知しています。
PosterController
↑管理用ツールです
設定ファイルが外部サービス上に配置されおり、ポスターを作る前に外部サービスから設定ファイルをダウンロードして使うという設計にしています。
PosterControllerでは設定ファイルを編集して配置することが出来ます。
ブラックリストや任意のツイートを挿入するプロモーション機能などを操作します。
上記以外のプロジェクトは上記のプロジェクトが参照しているプロジェクトです。
実行可能形式になるプロジェクトは上記の2個です。
写真の配信数は一ヶ月で200万回ありましたがCDNを導入する事により、RaspberryPiで配信することが出来ました。