iOSのショートカット機能でツイート確認画面を出さずにツイートする

iOSには「ショートカット」の名で色々なことを一発で実行してくれるApple謹製アプリが存在します。元はWorkflowという名のアプリだったのですが、それが買収されて正式な純正アプリとして生まれ変わったのがショートカットです。ちょっと…いやかなりググラビリティが低くて難儀するんですけどね。

このショートカット、やれることがわかるとだいぶ使いやすいです。画像は「再生中の音楽の楽曲名とアーティストとアルバムカバーを取得してツイートする」ショートカットのツイート画面。昔、この手の機能は専用のアプリが必要だったのですが、今となってはショートカット一本で使えるようになりました。

が、ここまで来ると、面倒くさくないですか。「ツイートの確認画面」。もう実行したらバーっとツイートして欲しくないですか。先述の楽曲名ツイート機能程度ならともかく、ショートカットの「オートメーション機能」なんかを使うと、いちいちツイート画面で一度処理がストップして面倒です。

そんな感じなので考えました。IFTTTのwebhookを使います。残念ながら画像を添付することはできないのですが、そもそも画像を添付しないオートメーション的なツイートであれば問題ないはずです。

IFTTTでwebhookを有効にすると”https://maker.ifttt.com/trigger/{event}/with/key/{key}“が発行されます。webhookのトリガーを叩くとTwitterに「value1の内容」をツイートするように設定。event名は何でも良いですがtweetにしました。これで”https://maker.ifttt.com/trigger/tweet/with/key/{key}“にvalue1をPOSTするとツイートできるようになりました。

しかし、ここからが長かった。ショートカットでPOST機能を実装するには「URLの内容を取得」機能を使うのですが、これがうまくいかない。どうやらスペースが入ると、スペースのところで文章が打ち切られてしまうようです。jsonってスペース許容してたよね…?

最終的に、「URLを展開」の機能を使うことで解決しました。この機能を使う場合、value1はこんな感じで指定できます。

“https://maker.ifttt.com/trigger/tweet/with/key/{key}?value1={ツイートの内容}”

ただし、こちらの場合も「スペース」の問題があります。URLなので。逆にいうとURLなのでそれ用にエンコードができます。そのため、ツイートしたい内容に「URLエンコード」の機能を噛ませます。なんでもあるなショートカット。

最終的に出来上がったのがこちら。結構コンパクトに収まりました。まだまだやれることは多そうです。実はこの記事の画像の圧縮やサイズ変更もショーカットを組んで行っていたりします。なので最近は記事を書くにも全てiPhoneで解決しちゃうんですね。便利になったものです。

追記 2020.3.21 これでURLエンコードなしにいけました。なんで最初上手くいかなかったんだろう…。

タイトルとURLをコピーしました