IFTTTの調子が最近悪いのでIntegromatに切り替えた話

SNS間の連携でよく使用されているのが IFTTT (「いふと」と読むらしい)というサービスです。

ifttt.com

私もIFTTTで

という処理(IFTTT 的にはアプレットと呼ぶ)を作って、主に飯テロに利用していました。

ところが最近 IFTTT の調子がどうもよろしくない。以前からポストが遅れることは度々ありましたが、2月中旬からまったく処理が行われなくなりました。

これが動かないのは飯テロ的にとても痛いので、代替になるサービスを探すことにしました。そこで見つけたのが Integromat というサービスです。

Integromat とは

www.integromat.com

IFTTT のように【なにがあったら】【どうする】という単純な2段階構成だけではなく、複雑な処理の流れを設定できるのが Integromat の特徴で、そのためのフィルター群も多数用意されています。複雑なものを作れるぶん設定は多少難しくなっていて、どのように処理 (Integromat 的にはシナリオと呼ぶ) を作るかというチュートリアルビデオが、YouTube にたくさんアップされています。


Tutorial: Routers and Filters

無料プランといくつかの有料プランが用意されていて、主に3つの指標の制約が、高いプランになるほど緩くなっています。

  • 処理の起動回数
  • データ転送量
  • 処理起動の最小間隔

無料で使える FREE プランでは、処理の起動回数が月1,000回までに制限されています。これは計算すると1時間に1回強しか起動できません。タイムリーな飯テロにはちょっとつらいなと考えて、自分は月額9ドルの BASIC プランにしました。BASIC プランだと起動が月10,000回まで緩和されます。

www.integromat.com

Facebook Photo to Twitter/Flickr を作る

それでは早速、目的のシナリオを作っていきましょう。最初に完成形を出しちゃいますが、こんな形になりました。

https://gyazo.com/c76a3e599fe1b7db1d79fa58d1ef3b74

以下詳しくみていきます。

Facebook: Watch Photos

まずは Facebook モジュールを写真の投稿をトリガーとして作ります。

https://gyazo.com/752afa518d6a77b6ce535147b664bce6

HTTP: Get a file

次にそこからの接続先として HTTP モジュールの Get a file を作ります。これなしに直接 TwitterFlickr モジュールにつなぐとうまく動いてくれません。Facebook モジュールで取得できる画像に関する項目は URL だけなので、間で HTTP モジュールで実際の画像データを取りに行く必要があるんですね。これが分からなくてずいぶんハマりました。

https://gyazo.com/d5b34649368687bc213d9dc589feb392

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側にハッシュタグとして正しく認識されません。

https://gyazo.com/4c34d5d4429dd20133818a4ab642274a

Flickr: Upload a photo

Twitterモジュールとと設定項目の違いはありますが、やっていることは同じです。

https://gyazo.com/6c70112e599830a9b34d6ee67a3c200f

試しに実行してみる

シナリオができたら、左下の「Run once」ボタンで試しに実行してみましょう。なにかまずいことがあると、そのモジュールにエラーが発生したことが表示されるので、その内容を読んで対処していきます。

あとは定期実行を設定しておしまい

BASICプランでは、シナリオの起動間隔を最短 5 分まで短く設定できますが、そんなに厳密さを要求するものでもないので、デフォルトの 15 分のままにしておきました。

さて写真を Facebook にアップロードしてしばらく待つと、無事に Twitter にポストされていました。めでたしめでたし。(↓が Integromat 自動実行で初めてうまくいったツイート)