16
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

はじめての記事投稿

インスタの投稿を自動でTwitterとSlackにシェア

Last updated at Posted at 2023-07-07

はじめに 🐢

インスタグラムの投稿を 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 版ですので、
ご自身のご責任のもと、ご利用下さい。

その他

トークンの取り方、留意事項、参考文献、などなど
書きたいのですが、あまりに眠いのでまた後日にさせて下さい。

16
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?