IFTTTでTwitter投稿APIをつくる
プログラムを使ってTwitterに投稿したいと思い、APIを使おうと思いました。
しかし公式の開発者登録はけっこう面倒くさそうです。
ということでIFTTTを使います。
※無料アカウントではAppletsを3つまでしか作れないので注意してください
つくるもの
トリガーに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