雑なWebhook Docsの先にあるAPI referenceも、そっすね、という感想しか湧かないドキュメントで、まあ読めば分かるだけどさって感じ。
てなわけで、どう考えても忘れるので、Webhook登録するだけの作業をまとめておく。
ちなみに、この作業では、https://github.com/jeremytregunna/ruby-trello を使う。
gemをinstall
cd ~ mkdir setup_trello_integration && cd setup_trello_integration bundle init echo "gem 'ruby-trello' gem 'launchy'" >> Gemfile bundle
下準備
bundle exec irb
require 'trello' Trello.open_public_key_url # API key が表示される以下で渡すkeyはコレ Trello.open_authorization_url key: 'yourpublickey' exit
Trello.open_public_key_url
で表示される画面はこんな。ここのKEYを使うので覚えておこう。
Trello.open_authorization_url key: 'yourpublickey'
で表示される画面はこんな。OAuthのアレ。よろしければ、Allow
を。
TOKENが表示されるので、こやつを後で使う。
webhookを作る
環境変数に、先ほど最初に取得したKEYと最後に取得したTOKENを指定。
echo "export TRELLO_DEVELOPER_PUBLIC_KEY=************************\nexport TRELLO_MEMBER_TOKEN=*********************************************" > .envrc direnv allow
bundle exec irb
require 'trello' Trello.configure do |config| config.developer_public_key = ENV['TRELLO_DEVELOPER_PUBLIC_KEY'] config.member_token = ENV['TRELLO_MEMBER_TOKEN'] end board_id = Trello::Board.find('****').id # TrelloのURLの`/b/:board_shortlink/*`の:board_shortlinkの部分でboardを探す callback_url = 'http://example.com' # 普段はPOSTで来るが、Webhook登録時はHEADに200を返すようにしておくこと。 webhook = Trello::Webhook.create(callback_url: callback_url, id_model: board_id) webhook.id # 設定変更したい場合などに使うのでメモっておく
コメントに書いたとおり、受け側のwebhookは初回だけHEADリクエストに200を返す必要がある。なんなの。
わからん
webhookのid忘れたらどうなっちゃうわけ?