はじめに 🐢
インスタグラムの投稿を Twitter と Slack に自動でシェアします。
基本的に自家用です。誰かご興味ある方居られればお試しを。
TL;DL
トークンを差し替えれば動く連携用プログラム insta2twislack を作成。
手持ちのレンタルサーバーでcronで呼び出してインスタ監視。
新規投稿を検出したら、Twitter と Slack に自動投稿。
背景
インスタのアプリからの Twitter 連携が廃止されました。
社内の Slack にも自動で連携してほしいです。
IFTTT や Zapier とかのノーコード系に課金すればできそうですが、
そのバジェットで円谷のウルトラサブスクしたいです。
前提
次のプログラムを使います。
以下のトークン類が必要です。
- instagram long lived access token
- twitter OAuth 2.0 client id and secret
- twitter OAuth 2.0 access token
- slack api user OAuth token
- 投稿先の Slack チャンネル名
詳細
1. サーバーの準備
まず PHP と cron が動作する サーバーを用意します。
2. インストール手順
insta2twislack の README.md の Installation を実行します。
3. 動作確認
insta2twislack の README.md の Example を実行します。
インスタグラムの最新の投稿1件を Twitter と Slack に即時にシェアします。
4. 定期処理
cron にてこんな感じで設定します(3分毎の例)。
*/3 * * * * (cd /hoge/insta2twislack && /usr/local/bin/php insta2twislack.php)
※ 手元のレンタルサーバーでは
cron は 3分以内の処理で、1時間間隔で、10個まで
と制限がありました。
その中でもほぼ3分毎に cron できたのですが、
それは別の記事に書きました。こちらを参照下さい ↓
5. 仕組み
以下のファイルに、インスタグラムの投稿IDを保持しています。
リクエストにより取得された新しい投稿IDのリストと、
ファイルに保存されている古い投稿IDのリストを比較し、
差分を取って、新規投稿を検出します。
insta2twislack/insta_api_php/insta_post_ids.txt
免責
大変申し訳無いのですが、不慣れでして
トークンがリフレッシュされなかったり、
何か間違っていて、連携が途切れる事があるかもしれません。
長期稼働試験を行っておらず、未だ Alpha 版ですので、
ご自身のご責任のもと、ご利用下さい。
その他
トークンの取り方、留意事項、参考文献、などなど
書きたいのですが、あまりに眠いのでまた後日にさせて下さい。