Skip to content

webhook

Tatsuya Koishi edited this page Nov 14, 2021 · 43 revisions

概要

  • 拙作tomato-shriekerからの移植。
  • webhookのURLに短文のPOSTを行うと、その短文を投稿することができる。Slack Incoming Webhooksと下位互換。
  • また、GROWIGitHubに宛先として設定することも可能。

利用を始める

モロヘイヤHOMEから「トークンの登録」を行い、利用開始する。

URLを調べる

webhookのURLは、モロヘイヤHOME内のページ/mulukhiya/app/webhookで確認する。 webhookのURLは公開せず、パスワード同様の厳重な管理をすること。

投稿を行う

JSONのペイロードは、Slack Incoming Webhooksのサブセット。curlを例にすると、以下の様なPOSTで実際に投稿出来る。 いずれも、実在しないフックダイジェスト(ID)には404を、JSONに適切な投稿本文が含まれていない場合等は422を返す。

テキストのみの投稿

curl -H 'Content-Type: application/json' -X POST -d '{"text":"敵が増えてきた時に仕掛けてくるフラッシュ攻撃には気をつけろ!"}' https://mstdn.example.com/mulukhiya/webhook/xxxx

添付画像を含む投稿

attachments要素に注目。

curl -H 'Content-Type: application/json' -X POST -d '{"text":"つかみ男につかまれると、体力ゲージが減少していく。","attachments":[{"image_url": "https://image.example.com/image.png"}]}' https://mstdn.example.com/mulukhiya/webhook/xxxx

ペイロード詳細

通常形式

{
  "spoiler_text": "ネタバレ注意",
  "text": "つかみ男につかまれると、体力ゲージが減少していく。",
  "attachments": [
    {
      "image_url": "https://image.example.com/image.png"
    }
  ]
}
  • 通常用途には通常形式を推奨。
  • attachmentsspoiler_text は省略可能。

Slack Incoming Webhooksのblocks形式

Slack Incoming Webhooksとの互換性の為に、通常形式とは別に利用可能な形式。 元々の仕様 https://api.slack.com/reference/messaging/payload

以下の様に、モロヘイヤではSlack Incoming Webhooksの一部の必須項目を省略してよい。

{
  "blocks": [
    {
      "type": "header",
      "text": {
        "text": "ネタバレ注意"
      }
    },
    {
      "type": "section",
      "text": {
        "text": "つかみ男につかまれると、体力ゲージが減少していく。"
      }
    },
    {
      "type": "image",
      "image_url": "https://image.example.com/image.png"
    }
  ]
}
Clone this wiki locally