野良ジニアのスクラップブック

野良エンジニアによる雑記帳。技術、本、便利グッズなどを気の向くままに。

IFTTT で GitHub リポジトリの RSS(Atom) Feed を監視して Twitter に投稿する方法【仮想通貨 小ネタ】

こんにちわ、野良エンジニアです。

今回は、IFTTT で GitHub リポジトリの Atom Feed を定期的にチェックして、更新があれば Twitter に投稿する方法を紹介します。

便利なテクニックや、はてなブログ用botなど Twitter 記事 全まとめ

Amazon プライムのメリット総まとめ
スペース倍増!キッチン作業が最高に捗る突っ張りキッチンラック
【Amazonプライム】内村さまぁ~ず第1〜50回から選ぶ爆笑ベスト10
仮想通貨ウェブフォントの導入方法


やりたいこと

仮想通貨 Lisk の情報を個人的に追っているのですが、GitHub の内容を自動でツイートさせたくなりました。

GitHub の特定リポジトリの情報を監視したい
できれば自動でツイート(or 何らかのアクション)させたい
できればあまり頑張らずに実現したい


経緯

そんなに長くもないですが、興味ない方は読み飛ばしてください。

別の方が常時監視してツイートしてくださってたのですが、とある理由から監視をやめるとのこと。


居なくなるのは寂しいですが仕方ありません。となると代替手段を考えねば、ということから今回のものを作りました。


IFTTT で監視してツイートするやつ作った

実際に作った結果が @WatcherOfLisk で、GitHub 側の Commits/Releases を検出したらこんな風にツイートします。


IFTTT(イフト) とは

IFTTT「これの時には、あれをする」を自動化できるウェブサービス。

分かりやすい例だと「明日が雨なら LINE でお知らせ」とか、「Instagram に写真アップしたら、Twitter に画像付きでツイート」とかできるやつです。

IFTTT


作り方

ざっくりとした流れはこんな感じ。

「必要に応じて」が多いのは、既存のメールアドレス、Twitter アカウント、IFTTT アカウントを使うか次第、という理由からです。

(必要に応じて)メールアドレス取得
(必要に応じて)Twitter アカウント開設
(必要に応じて)IFTTT アカウント開設
監視したい GitHub リポジトリの Atom Feed 情報をコピー
IFTTT でアプレット作成


詳細を書いていきますが、各アカウント開設の部分は飛ばします。

IFTTT アカウント開設も「メールアドレス」「パスワード」だけでできます、分からない方はググってください。


監視したい GitHub リポジトリの Atom Feed 情報をコピー

Qiita の「 Githubが結構色々なatomフィードを出せるので、連携で役に立ったりする」にまとまってますが、GitHub で(パブリックに)取得できる Atom Feed は大別すると 3種類です。

監視したいリポジトリ(ブランチ)に移動して、Atom Feed URL をコピーしましょう。

コミット
リリース
wiki


コミット

https://github.com/LiskHQ/lisk/commits/development の場合、末尾に .atom を付けた

https://github.com/LiskHQ/lisk/commits/development.atom で Atom Feed が取得できます。


リリース

リリースも同様に .atom を末尾に付けるだけです。

https://github.com/LiskHQ/lisk/releases.atom で Atom Feed が取得できます。


wiki

wiki も同様です。

https://github.com/ccxt/ccxt/wiki.atom で Atom Feed が取得できます。


その他

Issues や Pull Requests、Projects、Milestones など、様々なページで .atom を試してみましたが対応しているページは見つかりませんでした。

どうしても何かしたい場合には GitHub API v3 | GitHub Developer Guide を用いるしかなさそうです。

GitHub API v3 | GitHub Developer Guide


IFTTT でアプレット作成

IFTTT でアプレットを作成します。

Make an Applet - IFTTT にアクセス


This に RSS Feed を設定

This に「RSS Feed」を選択
「New Feed Item」を選択
Feed URL にコピーした Atom Feed URL を貼り付け
「Create Trigger」


That に Twitter を設定

That に「Twitter」を選択
「Post a tweet」を選択
Tweet text を編集(※サンプル後述)
「Create Action」


ツイート内容サンプル

実際に設定している内容、およびツイートを参考までに載せておきます。

絵文字はパッと見た時に判別しやすいように付けています、お好みでどうぞ。


コミット通知
[💎Lisk Core💎]<br>
⌨️Commit<br>
⏰{{EntryPublished}}<br>
📝{{EntryTitle}}<br>
🔗{{EntryUrl}}<br>
<br>
#Lisk #LSK #LiskCore #LiskGitHub


リリース通知
[💰Lisk Hub💰]<br>
🎉Lisk Hub {{EntryTitle}} tagged or released<br>
⏰{{EntryPublished}}<br>
🔗{{EntryUrl}}<br>
<br>
Please check it!<br>
#Lisk #LSK #LiskHub #LiskGitHub


Twitter 連携の注意点

いくつかハマった点があるので書いておきます。

改行は <br> タグで設定
ツイート内でメンション(@hoge)はできない
「Cannot connect」となる場合、スマホアプリから試してみてください


メンション不可は、Twitter の規約上できない仕様のようです。URLエンコードとか、バックスラッシュでエスケープとか色々と試してみましたがダメでした。

あと、新規 Twitter アカウントで試したら「Cannot connet」(だったはず) となりハマったのですが、IFTTT のスマホアプリから試したら連携できました。

IFTTT
IFTTT
開発元:IFTTT
無料
posted withアプリーチ


使える変数

以下の変数が使用可能です。Atom Feed の内容と照らし合わせながら、色々と試してみてください。

  • {{EntryTitle}}
  • {{EntryUrl}}
  • {{EntryAuthor}}
  • {{EntryContent}}
  • {{EntryImageUrl}}
  • {{EntryPublished}}
  • {{FeedTitle}}
  • {{FeedUrl}}


アプレット名を設定

最後にアプレット名を設定したら作成完了です。

監視したい内容が複数ある場合には、面倒ですが同じ手順でアプレットを複数作成しましょう。

作成完了後、リポジトリによってはコミットやリリースが全然来ないこともあります。気長に待ちましょう。


全体的な注意点

リアルタイム性が高くないため、「リリース(アップデート)と同時にツイート」は実現できません。

IFTTT のアプレットが動作する間隔は 15分単位
Atom Feed はリアルタイム性がそこまで高くないかも?


参考にしたページ

これらの記事が参考になりました。

Githubが結構色々なatomフィードを出せるので、連携で役に立ったりする - Qiita
GitHub の更新情報をRSS(ATOM) フィードで - ながいものには、まかれたくない
githubのrelease通知をiftttで受け取る
GitHub リポジトリのリリースをいち早く知る - すぱぶろ


まとめ

IFTTT × GitHub × Twitter でリポジトリの変化を検出してツイート
GitHub の Atom Feed を IFTTT で監視させるだけ
リアルタイム性はそこまで高くないので注意

ぶっちゃけ GitHub アカウントを開設すれば済む話ではあるグワ〜

みんなと一緒に見守りたい時には良いかもグワ!



便利なテクニックや、はてなブログ用botなど Twitter 記事 全まとめ

Amazon プライムのメリット総まとめ
スペース倍増!キッチン作業が最高に捗る突っ張りキッチンラック
【Amazonプライム】内村さまぁ~ず第1〜50回から選ぶ爆笑ベスト10
仮想通貨ウェブフォントの導入方法