Notification > Notification Hub > API v1.0使用ガイド > メッセージ
リクエスト本文にメッセージ内容を入力し、メッセージを送信リクエストします。
各メッセージチャンネルにメッセージを送信するためには、各メッセージチャンネルの送信情報が登録されている必要があります。送信情報の登録は、Notification Hubコンソール > 送信情報タブで行うことができます。メッセージチャンネルの発信情報の詳細な説明は、Notification > Notification Hub > 利用ポリシー及び事前設定案内で確認できます。
リクエスト
POST /message/v1.0/{messageChannel}/free-form-messages/{messagePurpose}
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: Bearer {accessToken}
リクエストパラメータ
| 名前 | 区分 | タイプ | 必須 | 説明 |
|---|---|---|---|---|
| appKey | Header | String | Y | アプリキー |
| accessToken | Header | String | Y | 認証トークン |
| messageChannel | Path | String | Y | メッセージチャンネル SMS, RCS, ALIMTALK, EMAIL, PUSH |
| messagePurpose | Path | String | Y | メッセージ目的 NORMAL, AD, AUTH |
共通リクエスト本文
メッセージチャンネルによるリクエスト本文の詳細は、下記のメッセージチャンネル別詳細リクエスト本文をご確認ください。
{
"statsKeyId": "統計_ID",
"scheduledDateTime": "2024-10-29T00:06:29+09:00",
"confirmBeforeSend": false,
"sender": {
"...": "メッセージ_チャンネルに_よって_異なる_形式"
},
"recipients": [
{
"contacts": [
{
"contactType": "PHONE_NUMBER",
"contact": "01012345678"
}
]
}
],
"content": {
"...": "メッセージ_チャンネルに_よって_異なる_形式"
}
}
| 名前 | タイプ | 必須 | 説明 |
|---|---|---|---|
| statsKeyId | String | N | 統計キーID |
| scheduledDateTime | DateTime(ISO 8601) | N | 予約送信日時(例:2024-10-29T06:29:00+09:00) |
| confirmBeforeSend | Boolean | N | 送信前に確認するかどうか(デフォルト値false) |
| sender | Object | Y/N | 発信者、プッシュ以外のメッセージチャンネルは必須 |
| recipients | Object Array | Y | 受信者配列 |
| recipients[].contacts | Object Array | Y | 受信者の連絡先配列 |
| recipients[].contacts[].contactType | String | Y | 連絡先タイプ PHONE_NUMBER, EMAIL_ADDRESS, TOKEN_FCM, TOKEN_APNS, TOKEN_ADM, TOKEN_APNS_SANDBOX, TOKEN_APNS_VOIP, TOKEN_APNS_VOIP_SANDBOX |
| recipients[].contacts[].contact | String | Y | 連絡先 |
| content | Object | Y | メッセージ内容 |
| メッセージチャンネル | フィールド | 説明 |
|---|---|---|
| SMS | sender.senderPhoneNumber | 発信者番号 |
| RCS | sender.brandId | ブランドID |
| RCS | sender.chatbotId | チャットルームID |
| sender.senderMailAddress | 発信者メールアドレス | |
| ALIMTALK | sender.senderKey | 発信キー |
| ALIMTALK | sender.senderProfileType | 発信プロフィールタイプ GROUP, NORMAL |
レスポンス本文
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"messageId": "メッセージ_ID"
}
| 名前 | タイプ | 説明 |
|---|---|---|
| header.isSuccessful | Boolean | APIリクエスト成否 |
| header.resultCode | Integer | 結果コード |
| header.resultMessage | String | 結果メッセージ |
| messageId | String | リクエスト成功したメッセージID |
リクエスト例
### 自由形式メッセージ送信
POST {{endpoint}}/message/v1.0/PUSH/free-form-messages/{messagePurpose}
Content-Type: application/json
X-NC-APP-KEY: {{appKey}}
X-NHN-Authorization: {{authorizationToken}}
{
"confirmBeforeSend": false,
"sender": {
"senderPhoneNumber": "01012341234"
},
"recipients": [
{
"contacts": [
{
"contactType": "PHONE_NUMBER",
"contact": "01012345678"
}
]
}
],
"content": {
"messageType": "SMS",
"body": "こんにちは。 NHN Cloudの新規商品Notification Hubがリリースされました。"
}
}
curl -X POST "${ENDPOINT}/message/v1.0/PUSH/free-form-messages/${MESSAGE_PURPOSE}" \
-H "Content-Type: application/json" \
-H "X-NC-APP-KEY: ${APP_KEY}" \
-H "X-NHN-Authorization: ${ACCESS_TOKEN}" \
-d '{
"confirmBeforeSend": false,
"sender": {
"senderPhoneNumber": "01012341234"
},
"recipients": [
{
"contacts": [
{
"contactType": "PHONE_NUMBER",
"contact": "01012345678"
}
]
}
],
"content": {
"messageType": "SMS",
"body": "こんにちは。 NHN Cloudの新規商品Notification Hubがリリースされました。"
}
}'
{
"statsKeyId": "統計_キー_ID",
"scheduledDateTime": "2024-10-24T06:29:00+09:00",
"confirmBeforeSend": false,
"sender": {
"senderPhoneNumber": "01012341234"
},
"recipients": [
{
"contacts": [
{
"contactType": "PHONE_NUMBER",
"contact": "01012345678"
}
]
}
],
"content": {
"messageType": "MMS",
"title": "[NHN Cloud Notification Hub]告知事項",
"body": "こんにちは。 NHN Cloud Notification Hubです。",
"attachmentIds": [
"添付_ファイル_ID"
]
}
}
| 名前 | タイプ | 必須 | 説明 |
|---|---|---|---|
| sender | Object | Y | 発信者、プッシュ以外のメッセージチャンネルは必須 |
| sender.senderPhoneNumber | String | N | 発信者番号 |
| content | Object | Y | メッセージ内容 |
| content.messageType | String | Y | メッセージタイプ SMS(短文), LMS(長文), MMS(メディア長文) |
| content.title | String | Y | タイトル |
| content.body | String | Y | 内容 |
| content.attachmentIds | String Array | N | 添付ファイルID |
{
"statsKeyId": "統計_キー_ID",
"scheduledDateTime": "2024-10-24T06:29:00+09:00",
"confirmBeforeSend": false,
"sender": {
"brandId": "ブランド_ID",
"chatbotId": "チャットルーム_ID"
},
"recipients": [
{
"contacts": [
{
"contactType": "PHONE_NUMBER",
"contact": "01012345678"
}
]
}
],
"content": {
"messageType": "SMS",
"unsubscribePhoneNumber": "08012341234",
"smsType": "STANDALONE",
"cards": [
{
"description":"こんにちは。NHN Cloud Notification Hubです。",
"buttons" : [
{
"buttonType" : "URL",
"buttonJson" : {
"action": {
"urlAction": { "openUrl": { "url": "http://www.test.com" } },
"displayText": "Webサイトへ移動"
}
}
}
]
}
]
},
"options": {
"expiryOption": 1,
"groupId":"groupId"
}
}
| 名前 | タイプ | 必須 | 説明 |
|---|---|---|---|
| sender | Object | Y | 発信者 |
| sender.brandId | String | Y | ブランドID |
| sender.chatbotId | String | Y | チャットルームID |
| content | Object | Y | メッセージ内容 |
| content.messageType | String | Y | RCS内のメッセージタイプ、SMS, LMS, MMS, RBC_TEMPLATE |
| content.unsubscribePhoneNumber | String | N | 080受信拒否番号、送信目的が広告の場合は必須 |
| content.smsType | String | Y | SMSタイプ、メッセージタイプがSMSの場合は必須、STANDALONE(スタンダード) |
| content.cards | Object Array | Y | カード |
| content.cards[].title | String | N | タイトル |
| content.cards[].description | String | Y | 内容 |
| content.cards[].buttons | Object Array | N | ボタン |
| content.cards[].buttons[].buttonType | String | Y | ボタンタイプ COMPOSE(チャットルームを開く), CLIPBOARD(コピーする), DIALER(電話をかける), MAP_SHOW(マップを表示する), MAP_QUERY(マップを検索する), MAP_SHARE(現在位置を共有する), URL(URLを接続する), CALENDAR(スケジュールを登録する) |
| content.cards[].buttons[].buttonJson | Object | Y | ボタンJson、ボタンタイプに合ったフォーマット確認 |
| options | Object | N | 送信オプション |
| options.expiryOption | Integer | N | デバイスへの送信試行に対するタイムアウト(1: 1日、2: 40秒、3: 3分、4: 1時間) |
| options.groupId | String | N | RCS BizCenter統計連動のためのグループID |
{
"statsKeyId": "統計_キー_ID",
"scheduledDateTime": "2024-10-24T06:29:00+09:00",
"confirmBeforeSend": false,
"sender": {
"brandId": "ブランド_ID",
"chatbotId": "チャットルーム_ID"
},
"recipients": [
{
"contacts": [
{
"contactType": "PHONE_NUMBER",
"contact": "01012345678",
"clientReference": "test"
}
]
}
],
"content": {
"messageType": "LMS",
"unsubscribePhoneNumber": "08012341234",
"lmsType": "STANDALONE",
"cards": [
{
"title":"[NHN Cloud]告知事項",
"description":"こんにちは。NHN Cloud Notification Hubです。",
"buttons" : [
{
"buttonType" : "URL",
"buttonJson" : {
"action": {
"urlAction": { "openUrl": { "url": "http://www.test.com" } },
"displayText": "Webサイトへ移動"
}
}
}
]
}
]
},
"options": {
"expiryOption": 1,
"groupId":"groupId"
}
}
| 名前 | タイプ | 必須 | 説明 |
|---|---|---|---|
| sender | Object | Y | 発信者 |
| sender.brandId | String | Y | ブランドID |
| sender.chatbotId | String | Y | チャットルームID |
| content | Object | Y | メッセージ内容 |
| content.messageType | String | Y | RCS内のメッセージタイプ、SMS, LMS, MMS, RBC_TEMPLATE |
| content.unsubscribePhoneNumber | String | N | 080受信拒否番号、送信目的が広告の場合は必須 |
| content.lmsType | String | Y | LMSタイプ、メッセージタイプがLMSの場合必須、STANDALONE(スタンダード), FORMAT_BASIC(フォーマット基本型), FORMAT_TITLE_HIGHLIGHT(フォーマットタイトル強調型), FORMAT_PARAGRAPH(フォーマット段落型) |
| content.cards | Object Array | Y | カード |
| content.cards[].title | String | N | タイトル |
| content.cards[].description | String | Y | 内容 |
| content.cards[].buttons | Object Array | N | ボタン |
| content.cards[].buttons[].buttonType | String | Y | ボタンタイプ COMPOSE(チャットルームを開く), CLIPBOARD(コピーする), DIALER(電話をかける), MAP_SHOW(マップを表示する), MAP_QUERY(マップを検索する), MAP_SHARE(現在位置を共有する), URL(URLを接続する), CALENDAR(スケジュールを登録する) |
| content.cards[].buttons[].buttonJson | Object | Y | ボタンJson、ボタンタイプに合ったフォーマット確認 |
| options | Object | N | 送信オプション |
| options.expiryOption | Integer | N | デバイスへの送信試行に対するタイムアウト(1: 1日、2: 40秒、3: 3分、4: 1時間) |
| options.groupId | String | N | RCS BizCenter統計連動のためのグループID |
{
"statsKeyId": "統計_キー_ID",
"scheduledDateTime": "2024-10-24T06:29:00+09:00",
"confirmBeforeSend": false,
"sender": {
"brandId": "ブランド_ID",
"chatbotId": "チャットルーム_ID"
},
"recipients": [
{
"contacts": [
{
"contactType": "PHONE_NUMBER",
"contact": "01012345678",
"clientReference": "test"
}
]
}
],
"content": {
"messageType": "LMS",
"unsubscribePhoneNumber": "08012341234",
"lmsType": "FORMAT_BASIC",
"cards": [
{
"mTitle":"[NHN Cloud]告知事項",
"mTitleMedia":"LT-messagebase.common-DdWk6s",
"title":"告知1",
"description":"こんにちは。NHN Cloud Notification Hubです。",
"buttons" : [
{
"buttonType" : "URL",
"buttonJson" : {
"action": {
"urlAction": { "openUrl": { "url": "http://www.test.com" } },
"displayText": "Webサイトへ移動"
}
}
}
]
}
]
},
"options": {
"expiryOption": 1,
"groupId":"groupId"
}
}
| 名前 | タイプ | 必須 | 説明 |
|---|---|---|---|
| sender | Object | Y | 発信者 |
| sender.brandId | String | Y | ブランドID |
| sender.chatbotId | String | Y | チャットルームID |
| content | Object | Y | メッセージ内容 |
| content.messageType | String | Y | RCS内のメッセージタイプ、SMS, LMS, MMS, RBC_TEMPLATE |
| content.unsubscribePhoneNumber | String | N | 080受信拒否番号、送信目的が広告の場合は必須 |
| content.lmsType | String | Y | LMSタイプ、メッセージタイプがLMSの場合必須、STANDALONE(スタンダード), FORMAT_BASIC(フォーマット基本型), FORMAT_TITLE_HIGHLIGHT(フォーマットタイトル強調型), FORMAT_PARAGRAPH(フォーマット段落型) |
| content.cards | Object Array | Y | カード |
| content.cards[].mTitle | String | Y | メインタイトル |
| content.cards[].mTitleMedia | String | N | メインタイトルアイコン |
| content.cards[].title | String | N | タイトル |
| content.cards[].description | String | Y | 内容 |
| content.cards[].buttons | Object Array | N | ボタン |
| content.cards[].buttons[].buttonType | String | Y | ボタンタイプ COMPOSE(チャットルームを開く), CLIPBOARD(コピーする), DIALER(電話をかける), MAP_SHOW(マップを表示する), MAP_QUERY(マップを検索する), MAP_SHARE(現在位置を共有する), URL(URLを接続する), CALENDAR(スケジュールを登録する) |
| content.cards[].buttons[].buttonJson | Object | Y | ボタンJson、ボタンタイプに合ったフォーマット確認 |
| options | Object | N | 送信オプション |
| options.expiryOption | Integer | N | デバイスへの送信試行に対するタイムアウト(1: 1日、2: 40秒、3: 3分、4: 1時間) |
| options.groupId | String | N | RCS BizCenter統計連動のためのグループID |
{
"statsKeyId": "統計_キー_ID",
"scheduledDateTime": "2024-10-24T06:29:00+09:00",
"confirmBeforeSend": false,
"sender": {
"brandId": "ブランド_ID",
"chatbotId": "チャットルーム_ID"
},
"recipients": [
{
"contacts": [
{
"contactType": "PHONE_NUMBER",
"contact": "01012345678",
"clientReference": "test"
}
]
}
],
"content": {
"messageType": "LMS",
"unsubscribePhoneNumber": "08012341234",
"lmsType": "FORMAT_PARAGRAPH",
"cards": [
{
"mTitle":"[NHN Cloud]告知事項",
"mTitleMedia":"LT-messagebase.common-DdWk6s",
"title1":"告知1",
"description1":"こんにちは。NHN Cloud Notification Hubです。",
"title2":"告知2",
"description2":"こんにちは。NHN Cloud Notification Hubです。",
"title3":"告知3",
"description3":"こんにちは。NHN Cloud Notification Hubです。",
"buttons" : [
{
"buttonType" : "URL",
"buttonJson" : {
"action": {
"urlAction": { "openUrl": { "url": "http://www.test.com" } },
"displayText": "告知1ボタン"
}
}
},
{},
{
"buttonType" : "URL",
"buttonJson" : {
"action": {
"urlAction": { "openUrl": { "url": "http://www.test.com" } },
"displayText": "告知2ボタン"
}
}
},
{
"buttonType" : "URL",
"buttonJson" : {
"action": {
"urlAction": { "openUrl": { "url": "http://www.test.com" } },
"displayText": "告知2ボタン"
}
}
},
{
"buttonType" : "URL",
"buttonJson" : {
"action": {
"urlAction": { "openUrl": { "url": "http://www.test.com" } },
"displayText": "告知3ボタン"
}
}
},
]
}
]
},
"options": {
"expiryOption": 1,
"groupId":"groupId"
}
}
| 名前 | タイプ | 必須 | 説明 |
|---|---|---|---|
| sender | Object | Y | 発信者 |
| sender.brandId | String | Y | ブランドID |
| sender.chatbotId | String | Y | チャットルームID |
| content | Object | Y | メッセージ内容 |
| content.messageType | String | Y | RCS内のメッセージタイプ、SMS, LMS, MMS, RBC_TEMPLATE |
| content.unsubscribePhoneNumber | String | N | 080受信拒否番号、送信目的が広告の場合は必須 |
| content.lmsType | String | Y | LMSタイプ、メッセージタイプがLMSの場合必須、STANDALONE(スタンダード), FORMAT_BASIC(フォーマット基本型), FORMAT_TITLE_HIGHLIGHT(フォーマットタイトル強調型), FORMAT_PARAGRAPH(フォーマット段落型) |
| content.cards | Object Array | Y | カード |
| content.cards[].mTitle | String | Y | メインタイトル |
| content.cards[].mTitleMedia | String | N | メインタイトルアイコン |
| content.cards[].title1 | String | N | タイトル(段落1) |
| content.cards[].description1 | String | Y | 内容(段落1) |
| content.cards[].title2 | String | N | タイトル(段落2) |
| content.cards[].description2 | String | Y | 内容(段落2) |
| content.cards[].title3 | String | N | タイトル(段落3) |
| content.cards[].description3 | String | Y | 内容(段落3) |
| content.cards[].buttons | Object Array | N | ボタン |
| content.cards[].buttons[].buttonType | String | Y | ボタンタイプ COMPOSE(チャットルームを開く), CLIPBOARD(コピーする), DIALER(電話をかける), MAP_SHOW(マップを表示する), MAP_QUERY(マップを検索する), MAP_SHARE(現在位置を共有する), URL(URLを接続する), CALENDAR(スケジュールを登録する) |
| content.cards[].buttons[].buttonJson | Object | Y | ボタンJson、ボタンタイプに合ったフォーマット確認 |
| options | Object | N | 送信オプション |
| options.expiryOption | Integer | N | デバイスへの送信試行に対するタイムアウト(1: 1日、2: 40秒、3: 3分、4: 1時間) |
| options.groupId | String | N | RCS BizCenter統計連動のためのグループID |
{
"statsKeyId": "統計_キー_ID",
"scheduledDateTime": "2024-10-24T06:29:00+09:00",
"confirmBeforeSend": false,
"sender": {
"brandId": "ブランド_ID",
"chatbotId": "チャットルーム_ID"
},
"recipients": [
{
"contacts": [
{
"contactType": "PHONE_NUMBER",
"contact": "01012345678",
"clientReference": "test"
}
]
}
],
"content": {
"messageType": "MMS",
"unsubscribePhoneNumber": "08012341234",
"mmsType": "HORIZONTAL",
"cards": [
{
"title":"[NHN Cloud]告知事項",
"description":"こんにちは。NHN Cloud Notification Hubです。",
"attachmentId":"添付ファイルID",
"buttons" : [
{
"buttonType" : "URL",
"buttonJson" : {
"action": {
"urlAction": { "openUrl": { "url": "http://www.test.com" } },
"displayText": "Webサイトへ移動"
}
}
}
]
}
]
},
"options": {
"expiryOption": 1,
"groupId":"groupId"
}
}
| 名前 | タイプ | 必須 | 説明 |
|---|---|---|---|
| sender | Object | Y | 発信者 |
| sender.brandId | String | Y | ブランドID |
| sender.chatbotId | String | Y | チャットルームID |
| content | Object | Y | メッセージ内容 |
| content.messageType | String | Y | RCS内のメッセージタイプ、SMS, LMS, MMS, RBC_TEMPLATE |
| content.unsubscribePhoneNumber | String | N | 080受信拒否番号、送信目的が広告の場合は必須 |
| content.mmsType | String | Y | MMSタイプ、メッセージタイプがMMSの場合必須、HORIZONTAL(横型), VERTICAL(縦型), CAROUSEL_MEDIUM(カルーセル中型), CAROUSEL_SMALL(カルーセル小型) |
| content.cards | Object Array | Y | カード |
| content.cards[].title | String | N | タイトル |
| content.cards[].description | String | Y | 内容 |
| content.cards[].attachmentId | String | Y | 添付ファイルID |
| content.cards[].buttons | Object Array | N | ボタン |
| content.cards[].buttons[].buttonType | String | Y | ボタンタイプ COMPOSE(チャットルームを開く), CLIPBOARD(コピーする), DIALER(電話をかける), MAP_SHOW(マップを表示する), MAP_QUERY(マップを検索する), MAP_SHARE(現在位置を共有する), URL(URLを接続する), CALENDAR(スケジュールを登録する) |
| content.cards[].buttons[].buttonJson | Object | Y | ボタンJson、ボタンタイプに合ったフォーマット確認 |
| options | Object | N | 送信オプション |
| options.expiryOption | Integer | N | デバイスへの送信試行に対するタイムアウト(1: 1日、2: 40秒、3: 3分、4: 1時間) |
| options.groupId | String | N | RCS BizCenter統計連動のためのグループID |
{
"statsKeyId": "統計_キー_ID",
"scheduledDateTime": "2024-10-24T06:29:00+09:00",
"confirmBeforeSend": false,
"sender": {
"brandId": "ブランド_ID",
"chatbotId": "チャットルーム_ID"
},
"recipients": [
{
"contacts": [
{
"buttonType": "URL",
"contactType": "PHONE_NUMBER",
"contact": "01012345678",
"clientReference": "test"
}
]
}
],
"content": {
"messageType": "MMS",
"unsubscribePhoneNumber": "08012341234",
"mmsType": "CAROUSEL_MEDIUM",
"cards": [
{
"title":"[NHN Cloud]告知事項",
"description":"こんにちは。NHN Cloud Notification Hubです。",
"attachmentId":"添付ファイルID",
"buttons" : [
{
"buttonType" : "URL",
"buttonJson" : {
"action": {
"urlAction": { "openUrl": { "url": "http://www.test.com" } },
"displayText": "Webサイトへ移動"
}
}
}
]
},
{
"title":"[NHN Cloud]告知事項",
"description":"こんにちは。NHN Cloud Notification Hubです。",
"attachmentId":"添付ファイルID",
"buttons" : [
{
"buttonType" : "URL",
"buttonJson" : {
"action": {
"urlAction": { "openUrl": { "url": "http://www.test.com" } },
"displayText": "Webサイトへ移動"
}
}
}
]
},
{
"title":"[NHN Cloud]告知事項",
"description":"こんにちは。NHN Cloud Notification Hubです。",
"attachmentId":"添付ファイルID",
"buttons" : [
{
"buttonType" : "URL",
"buttonJson" : {
"action": {
"urlAction": { "openUrl": { "url": "http://www.test.com" } },
"displayText": "Webサイトへ移動"
}
}
}
]
}
]
},
"options": {
"expiryOption": 1,
"groupId":"groupId"
}
}
| 名前 | タイプ | 必須 | 説明 |
|---|---|---|---|
| sender | Object | Y | 発信者 |
| sender.brandId | String | Y | ブランドID |
| sender.chatbotId | String | Y | チャットルームID |
| content | Object | Y | メッセージ内容 |
| content.messageType | String | Y | RCS内のメッセージタイプ、SMS, LMS, MMS, RBC_TEMPLATE |
| content.unsubscribePhoneNumber | String | N | 080受信拒否番号、送信目的が広告の場合は必須 |
| content.mmsType | String | Y | MMSタイプ、メッセージタイプがMMSの場合必須、HORIZONTAL(横型), VERTICAL(縦型), CAROUSEL_MEDIUM(カルーセル中型), CAROUSEL_SMALL(カルーセル小型) |
| content.cards | Object Array | Y | カード |
| content.cards[].title | String | N | タイトル |
| content.cards[].description | String | Y | 内容 |
| content.cards[].attachmentId | String | Y | 添付ファイルID |
| content.cards[].buttons | Object Array | N | ボタン |
| content.cards[].buttons[].buttonType | String | Y | ボタンタイプ
COMPOSE(チャットルームを開く), CLIPBOARD(コピーする), DIALER(電話をかける), MAP_SHOW(マップを表示する), MAP_QUERY(マップを検索する), MAP_SHARE(現在位置を共有する), URL(URLを接続する), CALENDAR(スケジュールを登録する) |
| content.cards[].buttons[].buttonJson | Object | Y | ボタンJson、ボタンタイプに合ったフォーマット確認 |
| options | Object | N | 送信オプション |
| options.expiryOption | Integer | N | デバイスへの送信試行に対するタイムアウト(1: 1日、2: 40秒、3: 3分、4: 1時間) |
| options.groupId | String | N | RCS BizCenter統計連動のためのグループID |
{
"sender": {
"senderMailAddress": "sender@example.com"
},
"recipients": [
{
"contacts": [
{
"contactType": "EMAIL_ADDRESS",
"contact": "recipient@example.com"
}
]
}
],
"content": {
"title": "[NHN Cloud Notification Hub]告知事項",
"body": "こんにちは。 NHN Cloud Notification Hubです。",
"attachmentIds": [
"添付_ファイル_ID"
]
}
}
| 名前 | タイプ | 必須 | 説明 |
|---|---|---|---|
| sender | Object | N | 発信者、プッシュ以外のメッセージチャンネルは必須 |
| sender.senderMailAddress | Object | N | 発信者メールアドレス |
| content | Object | Y | メッセージ内容 |
| content.title | Object | Y | タイトル |
| content.Object | Y | 内容 | |
| content.attachmentIds | String Array | N | 添付ファイルID |
{
"statsId": "統計_ID",
"scheduledDateTime": "2024-10-29T06:29:00+09:00",
"confirmBeforeSend": false,
"recipients": [
{
"contacts": [
{
"contactType": "TOKEN_FCM",
"contact": "トークン"
}
]
}
],
"content": {
"unsubscribePhoneNumber": "1234-1234",
"unsubscribeGuide": "設定 > メニュー",
"style": {
"useHtmlStyle": true
},
"title" : "<b>NHN Cloud </b> Notification",
"body" : "<b>リリースイベント</b> <i>告知事項確認</i>",
"richMessage" : {
"buttons" : [{
"name" : "ボタン名",
"submitName": "送信ボタン名",
"buttonType" : "REPLY",
"link" : "myapp://product_detail?product_id=1234",
"hint" : "ボタンに関するヒント"
}
],
"media" : {
"source" : "URL",
"mediaType" : "IMAGE",
"expandable" : true
},
"androidMedia": {
"source" : "URL",
"mediaType" : "IMAGE",
"expandable" : true
},
"iosMedia": {
"source" : "URL",
"mediaType" : "IMAGE",
"expandable" : true
},
"largeIcon" : {
"source" : "URL"
},
"group" : {
"key" : "グループのキー",
"description" : "グループについての説明"
}
},
"customKey" : "customValue"
}
}
| 名前 | タイプ | 必須 | 説明 |
|---|---|---|---|
| content | Object | Y | メッセージ内容 |
| content.unsubscribePhoneNumber | String | プッシュメッセージ受信拒否のための代表番号 | |
| content.unsubscribeGuide | String | プッシュメッセージ受信拒否のための案内 | |
| content.title | String | Y | タイトル |
| content.String | Y | 内容 | |
| content.style.useHtmlStyle | Boolean | Y | HTMLスタイル使用(Androidでのみ可能) |
| content.richMessage | Object | リッチメッセージ | |
| content.richMessage | Object | N | リッチメッセージ使用時に必要 |
| content.richMessage.buttons | Object Array | N | リッチメッセージに追加されるボタン、最大3個まで可能 |
| content.richMessage.button.name | String | ボタン名 | |
| content.richMessage.button.buttonType | String | ボタンタイプ、 REPLY, DEEP_LINK, OPEN_APP, OPEN_URL, DISMISS | |
| content.richMessage.button.link | String | ボタンを押した時に接続されるリンク | |
| content.richMessage.button.hint | String | ボタンについてのヒント | |
| content.richMessage.media | Object | N | リッチメッセージに追加されるメディア |
| content.richMessage.media.source | String | メディアの位置のアドレス、 URL, LOCAL_RESOURCE可能 | |
| content.richMessage.media.mediaType | String | N | メディアのタイプ、 IMAGE, GIF, VEDIO, AUDIO. AndroidでのみIMAGEのみサポート |
| content.richMessage.media.expandable | Boolean | N | Androidでメディアをクリックした時に展開機能を使用するかどうか |
| content.richMessage.androidMedia | Object | N | Android端末で使用されるメディア。形式はmediaと同じ。 |
| content.richMessage.iosMedia | Object | N | iOS端末使用されるメディア。形式はmediaと同じ。 |
| content.richMessage.largeIcon | Object | N | リッチメッセージに追加される大きなアイコン、 Androidでのみサポート |
| content.richMessage.largeIcon.source | String | Y | メディアの位置のアドレス |
| content.richMessage.group | Object | N | 複数のメッセージをグループ単位でまとめる機能、Androidのみサポート |
| content.richMessage.group.key | String | Y | グループのキー |
| content.richMessage.group.description | String | Y | グループについての説明 |
| content.customKey | Object Array or String Array | N | ユーザー定義キーと値 |
リクエスト
POST /message/v1.0/{messageChannel}/template-messages/{messagePurpose}
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: Bearer {accessToken}
リクエストパラメータ
| 名前 | 区分 | タイプ | 必須 | 説明 |
|---|---|---|---|---|
| appKey | Header | String | Y | アプリキー |
| accessToken | Header | String | Y | 認証トークン |
| messageChannel | Path | String | Y | メッセージチャンネル SMS, RCS, ALIMTALK, EMAIL, PUSH |
| messagePurpose | Path | String | Y | メッセージ目的 NORMAL, AD, AUTH |
リクエスト本文
{
"statsKeyId": "統計_ID",
"scheduledDateTime": "2024-10-29T00:06:29+09:00",
"confirmBeforeSend": false,
"templateId": "テンプレート_ID",
"templateParameters": {
"key1": "value1",
"key2": "value2",
"key3": {
"key4": "value4",
"key5": "value5"
}
},
"recipients": [
{
"contacts": [
{
"contactType": "PHONE_NUMBER",
"contact": "01012345678"
}
],
"templateParameters": {
"key3": {
"key4": "value4",
"key5": "value5"
},
"key6": "value6"
}
}
],
"sender": {
"senderKey": "発信_キー",
"chatbotId": "チャットルーム_ID"
},
"content": {
"unsubscribePhoneNumber": "08012341234"
}
}
| 名前 | タイプ | 必須 | 説明 |
|---|---|---|---|
| statsKeyId | String | N | 統計キーID |
| scheduledDateTime | DateTime(ISO 8601) | N | 予約送信日時(例:2024-10-29T06:29:00+09:00) |
| confirmBeforeSend | Boolean | N | 送信前確認を行うかどうか(デフォルト値false) |
| templateId | String | Y | テンプレートID |
| templateParameters | Object | N | テンプレートパラメータ |
| recipients | Object Array | Y | 受信者配列 |
| recipients[].contacts | Object Array | Y | 受信者の連絡先配列 |
| recipients[].contacts[].contactType | String | Y | 連絡先タイプ |
| recipients[].contacts[].contact | String | Y | 連絡先 |
| recipients[].templateParameters | Object | N | テンプレートパラメータ |
レスポンス本文
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"messageId": "メッセージ_ID"
}
リクエスト例
### テンプレートメッセージ送信
POST {{endpoint}}/message/v1.0/SMS/template-messages/NORMAL
Content-Type: application/json
X-NC-APP-KEY: {{appKey}}
X-NHN-Authorization: {{authorizationToken}}
{
"statsKeyId": "統計_ID",
"scheduledDateTime": "2024-10-29T00:06:29+09:00",
"confirmBeforeSend": false,
"templateId": "テンプレート_ID",
"templateParameters": {
"key1": "value1",
"key2": "value2",
"key3": {
"key4": "value4",
"key5": "value5"
}
},
"recipients": [
{
"contacts": [
{
"contactType": "PHONE_NUMBER",
"contact": "01012345678"
}
],
"templateParameters": {
"key3": {
"key4": "value4",
"key5": "value5"
},
"key6": "value6"
}
}
]
}
curl -X POST "${ENDPOINT}/message/v1.0/SMS/template-messages/${MESSAGE_PURPOSE}" \
-H "Content-Type: application/json" \
-H "X-NC-APP-KEY: ${APP_KEY}" \
-H "X-NHN-Authorization: ${ACCESS_TOKEN}" \
-d '{
"statsKeyId": "統計_ID",
"scheduledDateTime": "2024-10-29T00:06:29+09:00",
"confirmBeforeSend": false,
"templateId": "テンプレート_ID",
"templateParameters": {
"key1": "value1",
"key2": "value2",
"key3": {
"key4": "value4",
"key5": "value5"
}
},
"recipients": [
{
"contacts": [
{
"contactType": "PHONE_NUMBER",
"contact": "01012345678"
}
],
"templateParameters": {
"key3": {
"key4": "value4",
"key5": "value5"
},
"key6": "value6"
}
}
]
}'
{
"statsKeyId": "統計_ID",
"scheduledDateTime": "2024-10-29T00:06:29+09:00",
"confirmBeforeSend": false,
"templateId": "テンプレート_ID",
"templateParameters": {
"key1": "value1",
"key2": "value2",
"key3": {
"key4": "value4",
"key5": "value5"
}
},
"recipients": [
{
"contacts": [
{
"contactType": "PHONE_NUMBER",
"contact": "01012345678",
"clientReference": "test"
}
],
"templateParameters": {
"key3": {
"key4": "value4",
"key5": "value5"
},
"key6": "value6"
}
}
],
"sender": {
"brandId": "ブランド_ID",
"chatbotId": "チャットルーム_ID"
},
"content": {
"unsubscribePhoneNumber": "08012341234"
},
"options": {
"expiryOption": 1,
"groupId":"groupId"
}
}
| 名前 | タイプ | 必須 | 説明 |
|---|---|---|---|
| sender | Object | N | 発信者情報 |
| sender.chatbotId | String | N | チャットルームID(RCS Bizcenterテンプレートの場合必須) |
| content | Object | N | メッセージ内容 |
| content.unsubscribePhoneNumber | String | N | 080受信拒否番号(広告目的のRCS Bizcenterテンプレートを送信する場合、必須) |
| options | Object | N | 送信オプション |
| options.expiryOption | Integer | N | デバイスへの送信試行に対するタイムアウト(1: 1日、2: 40秒、3: 3分、4: 1時間) |
| options.groupId | String | N | RCS BizCenter統計連動のためのグループID |
リクエスト
POST /message/v1.0/flow-messages/{messagePurpose}
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: Bearer {accessToken}
リクエストパラメータ
| 名前 | 区分 | タイプ | 必須 | 説明 |
|---|---|---|---|---|
| appKey | Header | String | Y | アプリキー |
| accessToken | Header | String | Y | 認証トークン |
| messagePurpose | Path | String | Y | メッセージ目的 NORMAL, AD, AUTH |
リクエスト本文
{
"statsKeyId": "統計_ID",
"scheduledDateTime": "2024-10-29T00:06:29+09:00",
"confirmBeforeSend": false,
"flowId": "テンプレート_ID",
"templateParameters": {
"key1": "value1",
"key2": "value2",
"key3": {
"key4": "value4",
"key5": "value5"
}
},
"recipients": [
{
"contacts": [
{
"contactType": "TOKEN_FCM",
"contact": "token"
},
{
"contactType": "EMAIL_ADDRESS",
"contact": "recipient@example.com"
},
{
"contactType": "PHONE_NUMBER",
"contact": "01012345679"
}
],
"templateParameters": {
"key3": {
"key4": "value4",
"key5": "value5"
},
"key6": "value6"
}
}
],
"flow": {
"steps": [
{
"messageChannel": "SMS",
"nextSteps": [
{
"messageChannel": "RCS",
"sender": {
"chatbotId": "チャットルーム_ID"
},
"content": {
"unsubscribePhoneNumber": "08012341234"
},
"options": {
"expiryOption": 1,
"groupId":"groupId"
}
}
]
}
]
}
}
| 名前 | タイプ | 必須 | 説明 |
|---|---|---|---|
| statsKeyId | String | N | 統計キーID |
| scheduledDateTime | DateTime(ISO 8601) | N | 予約送信日時(例:2024-10-29T06:29:00+09:00) |
| confirmBeforeSend | Boolean | N | 送信前に確認するかどうか(デフォルト値false) |
| flowId | String | Y | フローID |
| templateParameters | Object | N | メッセージ共通テンプレートパラメータ |
| recipients | Object Array | Y | 受信者配列 |
| recipients[].contacts | Object Array | Y | 受信者の連絡先配列 |
| recipients[].contacts[].contactType | String | Y | 連絡先タイプ |
| recipients[].contacts[].contact | String | Y | 連絡先 |
| recipients[].contacts[].clientReference | String | N | ユーザーカスタムフィールド |
| recipients[].templateParameters | Object | N | 受信者別テンプレートパラメータ |
| flow | Object | N | フロー(必須値が必要なテンプレートを使用するフローの場合必須) |
| flow.steps[] | Array | Y | フロー段階(メッセージチャンネル別flow stepsスペック参照) |
レスポンス本文
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
},
"messageId": "メッセージ_ID"
}
リクエスト例
### フローメッセージ送信
POST {{endpoint}}/message/v1.0/flow-messages/{{messagePurpose}}
Content-Type: application/json
X-NC-APP-KEY: {{appKey}}
X-NHN-Authorization: {{authorizationToken}}
{
"statsKeyId": "統計_ID",
"scheduledDateTime": "2024-10-29T00:06:29+09:00",
"confirmBeforeSend": false,
"flowId": "テンプレート_ID",
"templateParameters": {
"key1": "value1",
"key2": "value2",
"key3": {
"key4": "value4",
"key5": "value5"
}
},
"recipients": [
{
"contacts": [
{
"contactType": "TOKEN_FCM",
"contact": "token"
},
{
"contactType": "EMAIL_ADDRESS",
"contact": "recipient@example.com"
}
],
"templateParameters": {
"key3": {
"key4": "value4",
"key5": "value5"
},
"key6": "value6"
}
}
]
}
curl -X POST "${ENDPOINT}/message/v1.0/flow-messages/${MESSAGE_PURPOSE}" \
-H "Content-Type: application/json" \
-H "X-NC-APP-KEY: ${APP_KEY}" \
-H "X-NHN-Authorization: ${ACCESS_TOKEN}" \
-d '{
"statsKeyId": "統計_ID",
"scheduledDateTime": "2024-10-29T00:06:29+09:00",
"confirmBeforeSend": false,
"flowId": "テンプレート_ID",
"templateParameters": {
"key1": "value1",
"key2": "value2",
"key3": {
"key4": "value4",
"key5": "value5"
}
},
"recipients": [
{
"contacts": [
{
"contactType": "TOKEN_FCM",
"contact": "token"
},
{
"contactType": "EMAIL_ADDRESS",
"contact": "recipient@example.com"
}
],
"templateParameters": {
"key3": {
"key4": "value4",
"key5": "value5"
},
"key6": "value6"
}
}
]
}'
{
"flow": {
"steps": [
{
"messageChannel": "RCS",
"sender": {
"chatbotId": "チャットルーム_ID"
},
"content": {
"unsubscribePhoneNumber": "08012341234"
},
"options": {
"expiryOption": 1,
"groupId":"groupId"
},
"nextSteps": []
}
]
}
}
| 名前 | タイプ | 必須 | 説明 |
|---|---|---|---|
| flow.steps[] | Array | Y | フロー段階 |
| flow.steps[].messageChannel | String | Y | メッセージチャンネル SMS, ALIMTALK, EMAIL, RCS, PUSH |
| flow.steps[].sender | Object | N | 発信者情報 |
| flow.steps[].sender.chatbotId | String | N | チャットルームID(RCS Bizcenterテンプレートの場合必須) |
| flow.steps[].content | Object | N | メッセージ内容 |
| flow.steps[].content.unsubscribePhoneNumber | String | N | 080受信拒否番号(広告目的のRCS Bizcenterテンプレートを送信する場合、必須) |
| flow.steps[].options | Object | N | 送信オプション |
| flow.steps[].options.expiryOption | Integer | N | デバイスへの送信試行に対するタイムアウト(1: 1日、2: 40秒、3: 3分、4: 1時間) |
| flow.steps[].options.groupId | String | N | RCS BizCenter統計連動のためのグループID |
| flow.steps[].nextSteps[] | Object Array | N | 次の段階です。 |
送信前の予約メッセージ、承認後の送信メッセージの送信要求をキャンセルします。リクエストキャンセルされたメッセージは、連絡先別受信結果照会で照会できます。
リクエスト
POST /message/v1.0/messages/{messageId}/do-cancel
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: Bearer {accessToken}
リクエストパラメータ
| 名前 | 区分 | タイプ | 必須 | 説明 |
|---|---|---|---|---|
| appKey | Header | String | Y | アプリキー |
| accessToken | Header | String | Y | 認証トークン |
| messageId | Path | String | Y | メッセージID |
リクエスト本文
このAPIはリクエスト本文を要求しません。
レスポンス本文
{
"header": {
"isSuccessful": true,
"resultCode": 0,
"resultMessage": "SUCCESS"
}
}
リクエスト例
### メッセージリクエストキャンセル
POST {{endpoint}}/message/v1.0/messages/{{messageId}}/do-cancel
Content-Type: application/json
X-NC-APP-KEY: {{appKey}}
X-NHN-Authorization: {{accessToken}}
curl -X POST "${ENDPOINT}/message/v1.0/messages/${MESSAGE_ID}/do-cancel" \
-H "Content-Type: application/json" \
-H "X-NC-APP-KEY: ${APP_KEY}" \
-H "X-NHN-Authorization: ${ACCESS_TOKEN}"
リクエスト
POST /message/v1.0/instant-flow-messages/{messagePurpose}
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: Bearer {accessToken}
リクエストパラメータ
| 名前 | 区分 | タイプ | 必須 | 説明 |
|---|---|---|---|---|
| appKey | Header | String | Y | アプリキー |
| accessToken | Header | String | Y | 認証トークン |
| messagePurpose | Path | String | Y | メッセージ目的 NORMAL, AD, AUTH |
リクエスト本文
{
"statsKeyId" : "aA123456",
"sender" : {
"chatbotId" : "44o4SUjpqnjDuUcH+uHvPg=="
},
"content" : {
"unsubscribePhoneNumber" : "08012341234"
},
"templateId" : "aA123456",
"scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
"confirmBeforeSend" : false,
"templateParameters" : {
"key1" : "value1",
"key2" : "value2"
},
"recipients" : [ {
"contacts" : [ {
"contactType" : "PHONE_NUMBER",
"contact" : "01012345678",
"clientReference" : "1234:abcd:011-asd"
} ],
"templateParameters" : {
"key1" : "value1",
"key2" : "value2"
}
} ],
"id" : "alpha123",
"options" : {
"expiryOption" : 1,
"groupId" : "20240814125609swLmoZTsGr0"
}
}
| パス | タイプ | 必須 | 説明 |
|---|---|---|---|
| statsKeyId | String | N | 統計キーID |
| scheduledDateTime | DateTime(ISO 8601) | N | 予約送信日時(例:2024-10-29T06:29:00+09:00) |
| confirmBeforeSend | Boolean | N | 送信前に確認するかどうか(デフォルト値false) |
| templateParameters | Object | N | テンプレートパラメータです。テンプレートIDを設定する場合必須です。 |
| recipients[] | Array | Y | 受信者リスト |
| recipients[].contacts[] | Array | N | 受信者連絡先リストです。 |
| recipients[].contacts[].contactType | String | Y | 連絡先タイプ PHONE_NUMBER, EMAIL_ADDRESS, TOKEN_ADM, TOKEN_FCM, TOKEN_APNS, TOKEN_APNS_SANDBOX, TOKEN_APNS_SANDBOX_VOIP, TOKEN_APNS_VOIP |
| recipients[].contacts[].contact | String | Y | 連絡先です。受信者を指定せずに連絡先を直接入力してメッセージを送信できます。 |
| recipients[].contacts[].clientReference | String | N | ユーザーカスタムフィールド |
| recipients[].templateParameters | N | テンプレートパラメータです。テンプレートIDを設定する場合必須です。 | |
| instantFlow | Object | Y | インスタントフローです。フローを作成せずに定義できます。 |
| instantFlow.steps[] | Array | Y | インスタントフロー段階です。(メッセージチャンネル別インスタントフロー段階スペックを参照) |
レスポンス本文
{
"header" : {
"isSuccessful" : true,
"resultCode" : 0,
"resultMessage" : "SUCCESS"
},
"messageId" : "aA123456"
}
| パス | タイプ | 説明 |
|---|---|---|
| header | Object | |
| header.isSuccessful | Boolean | true |
| header.resultCode | Integer | 0 |
| header.resultMessage | String | SUCCESS |
| messageId | String | メッセージIDです。メッセージ送信リクエストを受け取った時に作成される値です。 |
失敗レスポンス - 重複受信者
{
"header" : {
"isSuccessful" : true,
"resultCode" : 400004,
"resultMessage" : 「受信者の連絡先が重複しています」
},
"duplicatedContacts" : [
{
"contactType": "PHONE_NUMBER",
"contact": "0123456789"
}
]
}
リクエスト例
### インスタントフローメッセージ送信
POST {{endpoint}}/message/v1.0/instant-flow-messages/{{messagePurpose}}
Content-Type: application/json
X-NC-APP-KEY: {{appKey}}
X-NHN-Authorization: {{accessToken}}
{
"statsKeyId" : "aA123456",
"scheduledDateTime" : "2021-01-01T00:00:00Z",
"confirmBeforeSend" : false,
"templateParameters" : "templateParameters" : {
"key": "value"
},
"recipients" : [ {
"contacts" : [ {
"contactType" : "PHONE_NUMBER",
"contact" : "01012345678"
} ],
"templateParameters" : {
"key": "value"
}
} ],
"instantFlow" : {
"steps" : [ {
"messageChannel" : "RCS",
"options" : {
"expiryOption:" : 1,
"groupId" : "groupId"
}
} ]
}
}
curl -X POST "${ENDPOINT}/message/v1.0/instant-flow-messages/{messagePurpose}" \
-H "Content-Type: application/json" \
-H "X-NC-APP-KEY: ${APP_KEY}" \
-H "X-NHN-Authorization: ${ACCESS_TOKEN}"
-d '{
"statsKeyId" : "aA123456",
"scheduledDateTime" : "2021-01-01T00:00:00Z",
"confirmBeforeSend" : false,
"templateParameters" : {
"key": "value"
},
"recipients" : [ {
"contacts" : [ {
"contactType" : "PHONE_NUMBER",
"contact" : "01012345678"
} ],
"templateParameters" : {
"key": "value"
}
} ],
"instantFlow" : {
"steps" : [ {
"messageChannel" : "RCS",
"options" : {
"expiryOption:" : 1,
"groupId" : "groupId"
}
} ]
}
}
{
"instantFlow" : {
"steps" : [ {
"messageChannel" : "RCS",
"options" : {
"expiryOption:" : 1,
"groupId" : "groupId"
}
} ]
}
}'
| 名前 | タイプ | 必須 | 説明 |
|---|---|---|---|
| instantFlow.steps[] | Array | Y | フロー段階 |
| instantFlow.steps[].messageChannel | String | Y | メッセージチャンネル SMS, ALIMTALK, EMAIL, RCS, PUSH |
| instantFlow.steps[].templateId | String | N | テンプレートIDです。テンプレートIDを設定した場合、リクエスト時に発信者情報(sender)とメッセージ内容(content)が適用されません。 インスタントフローメッセージでテンプレートIDを設定しない場合、発信者情報(sender)とメッセージ内容(content)が必ず必要です。 |
| instantFlow.steps[].sender | Object | N | 発信者情報(自由形式メッセージ送信リクエストRCS本文例参照) |
| instantFlow.steps[].content | Object | N | メッセージ内容(自由形式メッセージ送信リクエストRCS本文例参照) |
| instantFlow.steps[].options | Object | N | 送信オプション(自由形式メッセージ送信リクエストRCS本文例参照) |
| instantFlow.steps[].nextSteps[] | Object Array | N | 次の段階です。 |