アプリの Webhook API リファレンス
最終更新日 2023年03月10日(金)
この API によって提供される機能の概要については、「アプリの Webhook」を参照してください。
Webhook
安定性: 本番環境
Webhook サブスクリプションの詳細を表します。
属性
名前 | 型 | 説明 | 例 |
---|---|---|---|
created_at | 日時 | Webhook が作成された日時。 | "2015-01-01T12:00:00Z" |
id | UUID | Webhook の一意識別子。 | "01234567-89ab-cdef-0123-456789abcdef" |
include | 配列 | サブスクリプションが通知を提供するエンティティ。 | ["api:release"] |
level | 文字列 | notify または sync のどちらか。notify の場合、Heroku は 1 つのファイアアンドフォーゲット配信を試行します。sync の場合、Heroku はリクエストが成功するか、または制限に達するまで複数の配信を試行します。 |
"notify" |
updated_at | 日時 | Webhook が最も最近更新された日時。 | "2015-01-01T12:00:00Z" |
url | URI | Webhook の通知リクエストが送信される URL。 | http://example.com |
Webhook の作成
特定のアプリの Webhook サブスクリプションを作成します。
POST /apps/{app_id_or_name}/webhooks
必須パラメータ
名前 | 型 | 説明 | 例 |
---|---|---|---|
include | 配列 | サブスクリプションがイベント通知を提供する 1 つ以上のエンティティ。 | ["api:release"] |
level | 文字列 | notify または sync のどちらか。notify の場合、Heroku は 1 つのファイアアンドフォーゲット配信を試行します。sync の場合、Heroku はリクエストが成功するか、または制限に達するまで複数の配信を試行します。 |
"notify" |
url | URI | Webhook の通知リクエストが送信される URL。 | http://example.com |
オプションパラメータ
名前 | 型 | 説明 | 例 |
---|---|---|---|
authorization | null 許容文字列 | Heroku がすべての Webhook 通知に含めるカスタム Authorization ヘッダー。 |
"Bearer 9266671b2767f804c9d5809c2d384ed57d8f8ce1abd1043e1fb3fbbcb8c3" |
secret | null 許容文字列 | Heroku がすべての Webhook 通知リクエストに署名するために使用する値 (この署名はリクエストの Heroku-Webhook-Hmac-SHA256 ヘッダーに含まれる)。この値を省略した場合は、生成された秘密鍵が API によって返されます。この値は再度取得することができないため、ただちに保存する必要があります。そうしないと、後で heroku webhooks:update を実行して秘密鍵を更新できてしまいます。 |
"dcbff0c4430a2960a2552389d587bc58d30a37a8cf3f75f8fb77abe667ad" |
curl の例
$ curl -n -X POST https://api.heroku.com/apps/$APP_ID_OR_NAME/webhooks \
-d '{
"authorization": "Bearer 9266671b2767f804c9d5809c2d384ed57d8f8ce1abd1043e1fb3fbbcb8c3",
"include": [
"api:release"
],
"level": "notify",
"secret": "dcbff0c4430a2960a2552389d587bc58d30a37a8cf3f75f8fb77abe667ad",
"url": "example"
}' \
-H "Content-Type: application/json" \
-H "Accept: application/vnd.heroku+json; version=3.webhooks"
応答の例
HTTP/1.1 201 Created
ETag: "0123456789abcdef0123456789abcdef"
Last-Modified: Sun, 01 Jan 2012 12:00:00 GMT
RateLimit-Remaining: 2400
{
"app": {
"id": "01234567-89ab-cdef-0123-456789abcdef",
"name": "example"
},
"created_at": "2015-01-01T12:00:00Z",
"id": "01234567-89ab-cdef-0123-456789abcdef",
"include": [
"api:release"
],
"level": "notify",
"updated_at": "2015-01-01T12:00:00Z",
"url": "example"
}
Webhook の削除
アプリの Webhook サブスクリプションを削除します。
DELETE /apps/{app_id_or_name}/webhooks/{webhook_id}
curl の例
$ curl -n -X DELETE https://api.heroku.com/apps/$APP_ID_OR_NAME/webhooks/$WEBHOOK_ID \
-H "Content-Type: application/json" \
-H "Accept: application/vnd.heroku+json; version=3.webhooks"
応答の例
HTTP/1.1 200 OK
ETag: "0123456789abcdef0123456789abcdef"
Last-Modified: Sun, 01 Jan 2012 12:00:00 GMT
RateLimit-Remaining: 2400
{
"app": {
"id": "01234567-89ab-cdef-0123-456789abcdef",
"name": "example"
},
"created_at": "2015-01-01T12:00:00Z",
"id": "01234567-89ab-cdef-0123-456789abcdef",
"include": [
"api:release"
],
"level": "notify",
"updated_at": "2015-01-01T12:00:00Z",
"url": "example"
}
Webhook の情報
アプリの Webhook サブスクリプションに関する情報を返します。
GET /apps/{app_id_or_name}/webhooks/{webhook_id}
curl の例
$ curl -n https://api.heroku.com/apps/$APP_ID_OR_NAME/webhooks/$WEBHOOK_ID \
-H "Accept: application/vnd.heroku+json; version=3.webhooks"
応答の例
HTTP/1.1 200 OK
ETag: "0123456789abcdef0123456789abcdef"
Last-Modified: Sun, 01 Jan 2012 12:00:00 GMT
RateLimit-Remaining: 2400
{
"app": {
"id": "01234567-89ab-cdef-0123-456789abcdef",
"name": "example"
},
"created_at": "2015-01-01T12:00:00Z",
"id": "01234567-89ab-cdef-0123-456789abcdef",
"include": [
"api:release"
],
"level": "notify",
"updated_at": "2015-01-01T12:00:00Z",
"url": "example"
}
Webhook の一覧
特定のアプリのすべての Webhook サブスクリプションを一覧表示します。
Range ヘッダーの唯一の容認可能な順序の値は id
です。
GET /apps/{app_id_or_name}/webhooks
curl の例
$ curl -n https://api.heroku.com/apps/$APP_ID_OR_NAME/webhooks \
-H "Accept: application/vnd.heroku+json; version=3.webhooks"
応答の例
HTTP/1.1 200 OK
Accept-Ranges: id
Content-Range: id 01234567-89ab-cdef-0123-456789abcdef..01234567-89ab-cdef-0123-456789abcdef; max=200
ETag: "0123456789abcdef0123456789abcdef"
Last-Modified: Sun, 01 Jan 2012 12:00:00 GMT
RateLimit-Remaining: 2400
[
{
"app": {
"id": "01234567-89ab-cdef-0123-456789abcdef",
"name": "example"
},
"created_at": "2015-01-01T12:00:00Z",
"id": "01234567-89ab-cdef-0123-456789abcdef",
"include": [
"api:release"
],
"level": "notify",
"updated_at": "2015-01-01T12:00:00Z",
"url": "example"
}
]
Webhook の更新
アプリの Webhook サブスクリプションの詳細を更新します。
PATCH /apps/{app_id_or_name}/webhooks/{webhook_id}
オプションパラメータ
名前 | 型 | 説明 | 例 |
---|---|---|---|
authorization | null 許容文字列 | Heroku がすべての Webhook 通知に含めるカスタム Authorization ヘッダー。 |
"Bearer 9266671b2767f804c9d5809c2d384ed57d8f8ce1abd1043e1fb3fbbcb8c3" |
include | 配列 | サブスクリプションが通知を提供するエンティティ。 | ["api:release"] |
level | 文字列 | notify または sync のどちらか。notify の場合、Heroku は 1 つのファイアアンドフォーゲット配信を試行します。sync の場合、Heroku はリクエストが成功するか、または制限に達するまで複数の配信を試行します。 |
"notify" |
secret | null 許容文字列 | Heroku がすべての Webhook 通知リクエストに署名するために使用する値 (この署名はリクエストの Heroku-Webhook-Hmac-SHA256 ヘッダーに含まれる)。この値を省略した場合は、生成された秘密鍵が API によって返されます。この値は再度取得することができないため、ただちに保存する必要があります。そうしないと、後で heroku webhooks:update を実行して秘密鍵を更新できてしまいます。 |
"dcbff0c4430a2960a2552389d587bc58d30a37a8cf3f75f8fb77abe667ad" |
url | URI | Webhook の通知リクエストが送信される URL。 | http://example.com |
curl の例
$ curl -n -X PATCH https://api.heroku.com/apps/$APP_ID_OR_NAME/webhooks/$WEBHOOK_ID \
-d '{
"authorization": "Bearer 9266671b2767f804c9d5809c2d384ed57d8f8ce1abd1043e1fb3fbbcb8c3",
"include": [
"api:release"
],
"level": "notify",
"secret": "dcbff0c4430a2960a2552389d587bc58d30a37a8cf3f75f8fb77abe667ad",
"url": "example"
}' \
-H "Content-Type: application/json" \
-H "Accept: application/vnd.heroku+json; version=3.webhooks"
応答の例
HTTP/1.1 200 OK
ETag: "0123456789abcdef0123456789abcdef"
Last-Modified: Sun, 01 Jan 2012 12:00:00 GMT
RateLimit-Remaining: 2400
{
"app": {
"id": "01234567-89ab-cdef-0123-456789abcdef",
"name": "example"
},
"created_at": "2015-01-01T12:00:00Z",
"id": "01234567-89ab-cdef-0123-456789abcdef",
"include": [
"api:release"
],
"level": "notify",
"updated_at": "2015-01-01T12:00:00Z",
"url": "example"
}
配信
安定性: 本番環境
Webhook 通知 (その現在のステータスを含む) の配信を表します。
属性
名前 | 型 | 説明 | 例 |
---|---|---|---|
created_at | 日時 | 配信エンティティが作成された日時。 | "2015-01-01T12:00:00Z" |
event:id | UUID | 配信に関連付けられている Webhook イベントの一意識別子。 | "01234567-89ab-cdef-0123-456789abcdef" |
event:include | 文字列 | Webhook に一致するインクルード | "api:release" |
id | UUID | 配信の一意識別子。 | "01234567-89ab-cdef-0123-456789abcdef" |
last_attempt | null 許容オブジェクト | 配信の最後の試行 | null |
last_attempt:code | null 許容整数 | 試行中に受信された HTTP 応答コード | null |
last_attempt:created_at | 日時 | 試行が作成された日時 | "2015-01-01T12:00:00Z" |
last_attempt:error_class | null 許容文字列 | 試行中に発生したエラーのクラス | null |
last_attempt:id | UUID | 試行の一意識別子 | "01234567-89ab-cdef-0123-456789abcdef" |
last_attempt:status | 文字列 | 試行のステータス 次のうちのいずれか: "scheduled" 、"succeeded" 、"failed" |
"scheduled" |
last_attempt:updated_at | 日時 | 試行が更新された日時 | "2015-01-01T12:00:00Z" |
next_attempt_at | null 許容日時 | 配信が再試行される日時 | null |
num_attempts | 整数 | 配信が試行された回数 | 42 |
status | 文字列 | 配信のステータス ("pending" 、"scheduled" 、"retrying" 、"failed" 、"succeeded" のいずれか)。 |
"pending" |
updated_at | 日時 | 配信エンティティが最後に更新された日時。 | "2015-01-01T12:00:00Z" |
webhook:id | UUID | 配信に関連付けられている Webhook サブスクリプションの一意識別子。 | "01234567-89ab-cdef-0123-456789abcdef" |
webhook:level | 文字列 | 配信の動作。"notify" では 1 つのファイアアンドフォーゲット配信を試行するのに対して、"sync" では成功するか、またはタイムアウトするまで複数の配信を試行します。 次のうちのいずれか: "notify" 、"sync" |
"notify" |
配信の情報
既存の配信エンティティに関する情報を返します。
GET /apps/{app_id_or_name}/webhook-deliveries/{delivery_id}
curl の例
$ curl -n https://api.heroku.com/apps/$APP_ID_OR_NAME/webhook-deliveries/$DELIVERY_ID \
-H "Accept: application/vnd.heroku+json; version=3.webhooks"
応答の例
HTTP/1.1 200 OK
ETag: "0123456789abcdef0123456789abcdef"
Last-Modified: Sun, 01 Jan 2012 12:00:00 GMT
RateLimit-Remaining: 2400
{
"created_at": "2015-01-01T12:00:00Z",
"event": {
"id": "01234567-89ab-cdef-0123-456789abcdef"
},
"id": "01234567-89ab-cdef-0123-456789abcdef",
"status": "pending",
"updated_at": "2015-01-01T12:00:00Z",
"webhook": {
"id": "01234567-89ab-cdef-0123-456789abcdef"
}
}
配信の一覧
アプリの既存の配信を一覧表示します。
Range ヘッダーの唯一の容認可能な順序の値は id
です。このエンドポイントでは、過去 7 日間の配信のみを、Webhook あたり 300 レコードまで一覧表示します。
GET /apps/{app_id_or_name}/webhook-deliveries
curl の例
$ curl -n https://api.heroku.com/apps/$APP_ID_OR_NAME/webhook-deliveries \
-H "Accept: application/vnd.heroku+json; version=3.webhooks"
応答の例
HTTP/1.1 200 OK
Accept-Ranges: id
Content-Range: id 01234567-89ab-cdef-0123-456789abcdef..01234567-89ab-cdef-0123-456789abcdef; max=200
ETag: "0123456789abcdef0123456789abcdef"
Last-Modified: Sun, 01 Jan 2012 12:00:00 GMT
RateLimit-Remaining: 2400
[
{
"created_at": "2015-01-01T12:00:00Z",
"event": {
"id": "01234567-89ab-cdef-0123-456789abcdef"
},
"id": "01234567-89ab-cdef-0123-456789abcdef",
"status": "pending",
"updated_at": "2015-01-01T12:00:00Z",
"webhook": {
"id": "01234567-89ab-cdef-0123-456789abcdef"
}
}
]
イベント
安定性: 本番環境
発生した Webhook イベントを表します。
属性
名前 | 型 | 説明 | 例 |
---|---|---|---|
created_at | 日時 | イベントエンティティが作成された日時。 | "2015-01-01T12:00:00Z" |
id | UUID | イベントの一意識別子。 | "01234567-89ab-cdef-0123-456789abcdef" |
include | 文字列 | イベントが関連しているエンティティのタイプ。 | "api:release" |
payload:action | 文字列 | 発生したイベントのタイプ。 | "create" |
payload:actor:email | メール | イベントを開始した Heroku ユーザーのメールアドレス。 | "username@example.com" |
payload:actor:id | UUID | イベントを開始した Heroku ユーザーの一意識別子。 | "01234567-89ab-cdef-0123-456789abcdef" |
payload:data | オブジェクト | イベントの現在の詳細。 | |
payload:previous_data | オブジェクト | イベントの以前の詳細 (存在する場合)。 | |
payload:resource | 文字列 | イベントに関連付けられているリソースのタイプ。 | "release" |
payload:version | 文字列 | イベントに関して提供される詳細のバージョン。 | "1" |
updated_at | 日時 | イベントが最後に更新された日時。 | "2015-01-01T12:00:00Z" |
イベントの情報
指定された Webhook イベントに関する情報を返します。
GET /apps/{app_id_or_name}/webhook-events/{webhook_id}
curl の例
$ curl -n https://api.heroku.com/apps/$APP_ID_OR_NAME/webhook-events/$WEBHOOK_ID \
-H "Accept: application/vnd.heroku+json; version=3.webhooks"
応答の例
HTTP/1.1 200 OK
ETag: "0123456789abcdef0123456789abcdef"
Last-Modified: Sun, 01 Jan 2012 12:00:00 GMT
RateLimit-Remaining: 2400
{
"created_at": "2015-01-01T12:00:00Z",
"id": "01234567-89ab-cdef-0123-456789abcdef",
"include": "api:release",
"payload": {
"action": "create",
"actor": {
"email": "username@example.com",
"id": "01234567-89ab-cdef-0123-456789abcdef"
},
"data": null,
"previous_data": null,
"resource": "release",
"version": "1"
},
"updated_at": "2015-01-01T12:00:00Z"
}
イベントの一覧
アプリの既存の Webhook イベントを一覧表示します。
Range ヘッダーの唯一の容認可能な順序の値は id
です。
GET /apps/{app_id_or_name}/webhook-events
curl の例
$ curl -n https://api.heroku.com/apps/$APP_ID_OR_NAME/webhook-events \
-H "Accept: application/vnd.heroku+json; version=3.webhooks"
応答の例
HTTP/1.1 200 OK
Accept-Ranges: id
Content-Range: id 01234567-89ab-cdef-0123-456789abcdef..01234567-89ab-cdef-0123-456789abcdef; max=200
ETag: "0123456789abcdef0123456789abcdef"
Last-Modified: Sun, 01 Jan 2012 12:00:00 GMT
RateLimit-Remaining: 2400
[
{
"created_at": "2015-01-01T12:00:00Z",
"id": "01234567-89ab-cdef-0123-456789abcdef",
"include": "api:release",
"payload": {
"action": "create",
"actor": {
"email": "username@example.com",
"id": "01234567-89ab-cdef-0123-456789abcdef"
},
"data": null,
"previous_data": null,
"resource": "release",
"version": "1"
},
"updated_at": "2015-01-01T12:00:00Z"
}
]