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