IFTTTの調子が最近悪いのでIntegromatに切り替えた話
SNS間の連携でよく使用されているのが IFTTT (「いふと」と読むらしい)というサービスです。
私もIFTTTで
という処理(IFTTT 的にはアプレットと呼ぶ)を作って、主に飯テロに利用していました。
ところが最近 IFTTT の調子がどうもよろしくない。以前からポストが遅れることは度々ありましたが、2月中旬からまったく処理が行われなくなりました。
これが動かないのは飯テロ的にとても痛いので、代替になるサービスを探すことにしました。そこで見つけたのが Integromat というサービスです。
Integromat とは
IFTTT のように【なにがあったら】【どうする】という単純な2段階構成だけではなく、複雑な処理の流れを設定できるのが Integromat の特徴で、そのためのフィルター群も多数用意されています。複雑なものを作れるぶん設定は多少難しくなっていて、どのように処理 (Integromat 的にはシナリオと呼ぶ) を作るかというチュートリアルビデオが、YouTube にたくさんアップされています。
無料プランといくつかの有料プランが用意されていて、主に3つの指標の制約が、高いプランになるほど緩くなっています。
- 処理の起動回数
- データ転送量
- 処理起動の最小間隔
無料で使える FREE プランでは、処理の起動回数が月1,000回までに制限されています。これは計算すると1時間に1回強しか起動できません。タイムリーな飯テロにはちょっとつらいなと考えて、自分は月額9ドルの BASIC プランにしました。BASIC プランだと起動が月10,000回まで緩和されます。
Facebook Photo to Twitter/Flickr を作る
それでは早速、目的のシナリオを作っていきましょう。最初に完成形を出しちゃいますが、こんな形になりました。
以下詳しくみていきます。
Facebook: Watch Photos
まずは Facebook モジュールを写真の投稿をトリガーとして作ります。
HTTP: Get a file
次にそこからの接続先として HTTP モジュールの Get a file を作ります。これなしに直接 Twitter や Flickr モジュールにつなぐとうまく動いてくれません。Facebook モジュールで取得できる画像に関する項目は URL だけなので、間で HTTP モジュールで実際の画像データを取りに行く必要があるんですね。これが分からなくてずいぶんハマりました。
Router
ここから直接 Twitter に繋いでしまっても良いですが、同じデータを Flickr にも投げたいので Router をはさみます。Router は1つの入力を複数に分岐してくれる機能です。
Twitter: Create a tweet
Router から送られた情報を Twitter モジュールの Create a tweet で新規ツイートとしてポストします。ツイート本文をどうするかは、渡されてきた情報や固定文字列の組み合わせで指定できます。今回は Facebook のコメント本文と URL を、ツイート本文としてポストするようにしました。 ここで大事な点があります。以下の画像の赤枠のように、「8. Name」と「8. Link」の間に「スペース」を一文字入れておくということです。これをやらないと、例えば
Facebook本文だよ #hashtag
というコメントだったときに、ツイートされる文章は
Facebook本文だよ #hashtaghttps://facebook.com/...
となってしまい、Twitter側にハッシュタグとして正しく認識されません。
Flickr: Upload a photo
Twitterモジュールとと設定項目の違いはありますが、やっていることは同じです。
試しに実行してみる
シナリオができたら、左下の「Run once」ボタンで試しに実行してみましょう。なにかまずいことがあると、そのモジュールにエラーが発生したことが表示されるので、その内容を読んで対処していきます。
あとは定期実行を設定しておしまい
BASICプランでは、シナリオの起動間隔を最短 5 分まで短く設定できますが、そんなに厳密さを要求するものでもないので、デフォルトの 15 分のままにしておきました。
さて写真を Facebook にアップロードしてしばらく待つと、無事に Twitter にポストされていました。めでたしめでたし。(↓が Integromat 自動実行で初めてうまくいったツイート)
もくもくしようと思ってきたらいきなり蟹工船に組み込まれたw #phperkaigi https://t.co/nWqYFX8ddd pic.twitter.com/0E2HJGh13s
— KOYAMA Tetsuji (@koyhoge) 2019年3月29日