眠いしお腹すいたし(´・ω・`)

C#関連を主に書きます。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

リツイート抽選サービス「ついせん」をはじめました。

ツイッターリツイートで抽選を行うためのサービス「ついせん」を作りました。

twisen.azurewebsites.net

無料で使えてリツイート抽選できます。

ツイッターリツイートで抽選を行うサービスでは国内では「あたれら」くらいだったのですが、「あたれら」さんは、抽選処理を同期的に行う仕様上、TwitterAPIの7日以前の検索が行えない制約から最大7日間までの範囲での抽選企画を対象としています。

しかし、最近Twitter社さんは有料APIに力を入れていて去年の11月ごろから無制限に古いデータを検索できるようにしていています。

Twitterがより自由にデータにアクセス可能となる開発者向けプレミアムAPIをリリース - GIGAZINE

ですので有料APIを使用すれば同期的処理であっても7日縛りを突破できます。

「あたれら」さんのプログラムで有料APIを使用すればOKな感じです。

でも無料サービスで月額17,000円の有料APIを使うのは辛いし無料APIの範囲で何とかしてみたい・・・ということを考えまして「ついせん」を作成しました。

あと、Durable Functionsを使ってサービスを作ってみたかった・・・という理由もあります。

「ついせん」ではリツイートしてもらいたい対象のツイートを登録するときに、締切日時を設定します。 この締切日時は1ヶ月後でも1年後でもOKです。 「ついせん」は締切日時までリツイートしてくれたユーザを収集していきます。 そして締切日時を過ぎたら収集したユーザの中から抽選を行います。 これによって無料で7日の縛りを越えるようにしています。

またリツイート数の制限も特に設けていません。 ツイッターのSearchAPIはRateLimitが結構厳しいので15分間に180になります。 この辺も非同期に処理する仕組みなので乗り越えています。 試験では40000RTまで確認しました。

動作環境としてはAzureで動作させていてWeb Apps(F1) + SQLDatabase(Basic) + Azure Functions(従量課金) + Azure Storageっていう感じです。

現状は運用費用は月額600円くらいです。「あたれら」さんがあるのであまり使われないと思いますのでSQLDatabaseの部分を別のストレージに置き換えれば無料で運営できるかなぁとか思います。

無料で使えますのでお気軽にご利用ください。