🦅

IFTTTでTwitter投稿APIをつくる

2021/06/21に公開

プログラムを使ってTwitterに投稿したいと思い、APIを使おうと思いました。
しかし公式の開発者登録はけっこう面倒くさそうです。

https://www.itti.jp/web-direction/how-to-apply-for-twitter-api/

ということでIFTTTを使います。
※無料アカウントではAppletsを3つまでしか作れないので注意してください

https://ifttt.com/home

作業記録(Zenn scrap)

つくるもの

トリガーにWebhooks、アクションにTwitterを設定します。

"If receive a web request, then post a tweet"を実装します。

サービスの連携

WebhooksとTwitterを使えるように準備します。
すでに連携できている場合はスキップしてください。

Webhooksの設定

ExploreページからWebhooksを検索して選択します。

Connectします。

これで自分用のWebhooksが生成されます。

右上の歯車から設定を確認します。

URLが表示されているので控えておきます。

このURLが流出すると勝手にツイート等に使われてしまう可能性があるので厳重に管理しましょう。
なお削除して作り直すことは可能です。

Twitterの設定

ExploreページからTwitterを検索して選択します。

Connectします。

Twitterに遷移するので認証を許可します。
ログインしていない場合はログインが必要です。

許可すると自動でIFTTTに戻ります。
Connectボタンがあった箇所がCreate / Visit Twitterに変わっていたら接続成功です。

Appletsの作成

ヘッダーのCreateからAppletsの作成を行います。

トリガーの設定

If Thisを押してサービス一覧を出し…

Webhooksを選択します。

Receive a web requestをトリガーとして設定します。

Event Nameを設定してCreate triggerします。

なおこのイベント名は後で使うので控えておきます。

アクションの設定

Then Thatからアクションの設定を行います。

Twitterを選択します。

Post a tweetを選択します

Add ingredientからValue 1を選択して追加します。

{{Value1}}を直接入力しても問題ありません。
設定できたらCreate actionします。

Appletsのタイトル入力画面になるので、適当に名前をつけてFinishすれば完成です。

実行

https://maker.ifttt.com/trigger/{event}/with/key/{key}へPOSTを投げることで実行できます。

IFTTTのページから実行

Webhooks Settingsのページで表示されていたURLにアクセスすると使い方の説明が見られます。
忘れた場合は設定時と同じようにExploreページから入れば確認できます。

このページは説明の閲覧だけでなくテストの実行もできます。

To trigger an Eventの部分に表示されている入力窓のうち、{event}にトリガーとして設定したイベント名を、value1の部分にツイートしたい内容を入力します。
出来たら下のTest itボタンを押しましょう。

イベント名を間違えていなければツイートが出来ているはずです。

CURLから実行

上記のテストページだとValueにバックスラッシュを入れてもエスケープされてしまいます。
curlなどから送信すれば問題なく使えます。

❯ curl -X POST -H "Content-Type: application/json" -d '{"value1":"改行してみる\nテスト"}' https://maker.ifttt.com/trigger/send_tweet/with/key/xxxxx
Congratulations! You've fired the send_tweet event

ミスったこと

最初はPost a tweet with imageのアクションを選択していたのですが、この場合、必ず画像を含めないといけないようです。
画像の部分を空にしたらFile not foundの表示が出てしまいました。

このあたりの「画像のURLがあれば画像を追加する」みたいな設定はProアカウントが必要になるので、今後検討します。

ひとこと

簡単にツイート用のAPIを作れました。
IFTTTの無料作成枠が余っている方はお試しください。

Discussion