基本情報
API URL
https://sens.apigw.ntruss.com/friendtalk/v2
API Header
| 項目 | Mandatory | 説明 |
|---|---|---|
| Content-Type | Mandatory | リクエスト Body Content Typeを application/jsonに指定(POST) |
| x-ncp-apigw-timestamp | Mandatory | 1970年1月1日 00:00:00 協定世界時(UTC)からの経過時間をミリ秒(Millisecond)で表したもの API Gatewayサーバとの時間差が5分以上の場合は無効なリクエストとみなす |
| x-ncp-iam-access-key | Mandatory | ポータルまたは Sub Accountが発行した Access Key ID |
| x-ncp-apigw-signature-v2 | Mandatory | 上記例の Bodyを Access Key IDとマッピングする SecretKeyで暗号化した署名 HMAC暗号化アルゴリズムは、HmacSHA256を使用 |
NAVERクラウドプラットフォームの認証キーおよび Signature作成ガイドへ
メッセージ
メッセージの送信
メッセージを送信します。
リクエスト URL
POST https://sens.apigw.ntruss.com/friendtalk/v2/services/{serviceId}/messages
Content-Type: application/json; charset=utf-8
x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}
Path Variables
| 項目 | Mandatory | Type | 説明 | 備考 |
|---|---|---|---|---|
| serviceId | Mandatory | String | サービス ID | プロジェクト登録時に発行されたサービス ID |
Headers
リクエストボディ
{
"plusFriendId":"string",
"messages":[
{
"isAd":"string",
"countryCode":"string",
"to":"string",
"content":"string",
"buttons":[
{
"type":"string",
"name":"string",
"linkMobile":"string",
"linkPc":"string",
"schemeIos":"string",
"schemeAndroid":"string"
}
],
"image":{
"imageId":"string",
"imageLink":"string"
},
"useSmsFailover": "boolean",
"failoverConfig": {
"type": "string",
"from": "string",
"subject": "string",
"content": "string"
}
}
],
"reserveTime": "yyyy-MM-dd HH:mm",
"reserveTimeZone": "string"
}
| 項目 | Mandatory | Type | 説明 | 備考 |
|---|---|---|---|---|
| plusFriendId | Mandatory | String | カカオトークチャンネル名((旧)プラス友達 ID) | |
| messages | Mandatory | Object | メッセージ情報 | 以下の項目を参照(messages.XXX) 最大100個 |
| messages.isAd | Optional | Boolean | 広告メッセージかどうか | デフォルト: true 広告メッセージとして送信する場合(isAd: true)、 SMS Failoverが動作する場合、広告メッセージ送信表記の義務を遵守する必要があります。 |
| messages.countryCode | Optional | String | 受信者の国番号 | デフォルト: 82 |
| messages.to | Mandatory | String | 受信者番号 | |
| messages.content | Mandatory | String | 友達トークメッセージの内容 | |
| messages.buttons | Optional | Array of Object | 友達トークメッセージボタン | ボタン情報を参照 |
| messages.buttons.type | Mandatory | String | ボタンType | 以下のテンプレートボタン情報を参照 |
| messages.buttons.name | Mandatory | String | ボタン名 | 以下のテンプレートボタン情報を参照 |
| messages.image | Optional | Object | 画像情報 | 画像のアップロードを参照 |
| messages.image.imageId | Mandatory | String | アップロードされた画像 ID | |
| messages.image.imageLink | Mandatory | String | 画像リンク | |
| messages.useSmsFailover | Optional | Boolean | SMS Failover使用の有無 | Failoverが設定されたカカオトークチャンネルでのみ使用可能 デフォルト: カカオトークチャンネルの Failover設定の有無による |
| messages.failoverConfig | Optional | Object | Failover設定 | 以下の項目を参照 |
| messages.failoverConfig.type | Optional | String | Failover SMSメッセージの Type | SMS or LMS デフォルト: contentの長さに応じて自動適用 (90bytes以下は SMS、超過は LMS) |
| messages.failoverConfig.from | Optional | String | Failover SMSの発信番号 | デフォルト: Failoverを設定する時に選択した発信番号 承認されていない発信番号を使用すると、Failoverは動作しない |
| messages.failoverConfig.subject | Optional | String | Failover SMSの件名 | LMS typeとして動作するときに使用 デフォルト: カカオトークチャンネル名 |
| messages.failoverConfig.content | Optional | String | Failover SMSの内容 | デフォルト: 友達トークメッセージの内容(ボタンを除く) |
| reserveTime | Optional | String | 予約日時 | メッセージの送信予約日時(yyyy-MM-dd HH:mm) |
| reserveTimeZone | Optional | String | 予約日時のタイムゾーン | 予約日時のタイムゾーン(デフォルト: Asia/Seoul) *サポートタイムゾーンリスト * TZ database nameの値を使用 |
- リクエスト Bodyの Mandatoryフィールドを利用する場合、スペースは使用できません (追加する場合に限る)。
- SMS FailoverはBizMessage受信結果コードに照らして成功でない場合に動作します。prefixとして Bがついたコードの場合は failover機能による SMS代替送信は行われません。
| Status | Error text | Desc |
|---|---|---|
| 0000 | - | 正常に送信 |
| 3022 | NoSendAvailableTimeException | メッセージが送信可能な時間ではない(友達トーク/マーケティングメッセージは08時~20時50分まで送信可能) |
| Bxxx | 下記の BizMessage受信結果コードを参照 | 下記の BizMessage受信結果コードを参照 |
- 広告メッセージの送信時、SMS Failoverに設定された SMSサービスの080受信拒否サービスを使用します。
- 設定された SMSサービスに080受信拒否サービスが利用可能な状態でない場合、SMS Failoverは失敗します。
failoverConfig.contentを別途指定せずに使用する場合、SMS Failover時に自動的に広告表記文言を挿入します。[広告]{メッセージ内容} 無料受信拒否番号08012345678failoverConfig.contentを直接別途指定する場合、広告表記文言は挿入しません。広告メッセージの送信時に直接追加してください。- 広告表示義務を遵守していない SMSメッセージを送信した場合、後日疎明が必要になる場合があります。
- ワイド画像送信の場合、テキスト + リンクボタン(1個) + 画像を送信できます。
- 2つ以上のボタンを追加するとメッセージ送信に失敗します (無効なパラメータリクエスト)。
- テキストの文字数は76文字に制限されます。
ボタン情報
| Type | Name | Mandatory項目 |
|---|---|---|
| WL | ウェブリンク | linkMobile、linkPc (http://または https://で始まる URL) |
| AL | アプリリンク | schemeIos, schemeAndroid |
| BK | ボットキーワード | |
| MD | メッセージの伝達 | |
| AC | チャンネルの追加 |
レスポンスボディ
{
"requestId":"string",
"requestTime":"string",
"statusCode":"string",
"statusName":"string",
"messages":[
{
"messageId":"string",
"countryCode":"string",
"to":"string",
"content":"string",
"requestStatusCode":"string",
"requestStatusName":"string",
"requestStatusDesc":"string",
"useSmsFailover":"boolean"
}
]
}
| 項目 | Mandatory | Type | 説明 | 備考 |
|---|---|---|---|---|
| requestId | Mandatory | String | 送信リクエスト ID | |
| requestTime | Mandatory | DateTime | 送信リクエスト時間 | yyyy-MM-dd'T'HH:mm:ss.SSS |
| statusCode | Mandatory | String | リクエスト状態コード | 202 - 成功 その他 - 失敗 * HTTP Status規格に従う |
| statusName | Mandatory | String | リクエスト状態名 | success - 成功 processing - 処理中 reserved - 予約中 fail - 失敗 |
| messages.messageId | Mandatory | String | メッセージ ID | |
| messages.countryCode | Optional | String | 受信者の国番号 | デフォルト: 82 |
| messages.to | Mandatory | String | 受信者番号 | |
| messages.content | Mandatory | String | 友達トークメッセージの内容 | |
| messages.requestStatusCode | Mandatory | String | 送信リクエスト状態コード | A000 - 成功 その他のコード - 失敗(Desc項目に失敗理由が明示される) |
| messages.requestStatusName | Mandatory | String | 送信リクエスト状態名 | success - 成功 fail - 失敗 |
| messages.requestStatusDesc | Mandatory | String | 送信リクエスト状態の内容 | |
| messages.useSmsFailover | Mandatory | Boolean | SMS Failover使用の有無 |
レスポンスステータス
| HTTP Status | Desc |
|---|---|
| 202 | Accepted(送信リクエスト完了) |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 500 | Internal Server Error |
メッセージ送信リクエストの照会
メッセージの送信リクエストを照会します。
リクエスト URL
GET https://sens.apigw.ntruss.com/friendtalk/v2/services/{serviceId}/messages?requestId=
x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}
Path Variables
| 項目 | Mandatory | Type | 説明 | 備考 |
|---|---|---|---|---|
| serviceId | Mandatory | String | サービス ID | プロジェクト登録時に発行されたサービス ID |
Parameters
| 項目 | Mandatory | Type | 説明 | 備考 |
|---|---|---|---|---|
| requestId | Mandatory | String | リクエスト ID | 送信リクエスト ID |
| plusFriendId | Mandatory | String | カカオチャンネル | 登録されたチャンネル名 |
| requestStartTime | Mandatory | String | 照会時間の開始時刻 | yyyy-MM-dd'T'HH:mm:ss |
| requestEndTime | Mandatory | String | 照会時間の終了時刻 | yyyy-MM-dd'T'HH:mm:ss |
| completeStartTime | Mandatory | String | 送信完了の開始時間 | yyyy-MM-dd'T'HH:mm:ss |
| completeEndTime | Mandatory | String | 送信完了の終了時間 | yyyy-MM-dd'T'HH:mm:ss |
| messageId | Optional | String | メッセージ ID | |
| requestStatusName | Optional | String | リクエスト状態 | success, fail |
| messageStatusName | Optional | String | リクエスト状態 | success, processing, fail |
| to | Optional | String | メッセージ受信番号 | ハイフン「-」を除く番号 |
| nextToken | Optional | String | 次のページのトークン | 下記参照 |
| pageSize | Optional | Integer | ページサイズ | デフォルト: 20, 最大: 100 requestIdを含めて照会する場合、デフォルト: 100 |
参考
- メッセージの送信履歴は直近30日以内の履歴のみ照会できます。
- requestId、requestStartTime + requestEndTime、completeStartTime + completeEndTimeのうち少なくとも1つは必須です。
- requestStartTime + requestEndTimeと completeStartTime + completeEndTimeは同時には使用できません。
- requestStartTime ~ requestEndTimeの照会範囲は最大31日に制限されます。
- completeStartTime ~ completeEndTimeの照会範囲は最大24時間に制限されます。
- 照会条件に requestIdが含まれていない場合、plusFriendIdは必須です。
- nextToken
- 前のリクエストで
nextTokenレスポンスを受け取った場合にのみ有効で、次のページの結果をリクエストできることを示します。追加結果がある場合、前のレスポンスのnextTokenの値をこの Parameterに設定すると、次のページの結果を照会できます。
- 前のリクエストで
Headers
リクエストボディ
なし
レスポンスボディ
{
"requestId": "string",
"statusCode": "string",
"statusName": "string",
"messages": [
{
"requestTime": "string",
"messageId": "string",
"countryCode": "string",
"to": "string",
"content": "string",
"plusFriendId": "string",
"completeTime": "string",
"requestStatusCode": "string",
"requestStatusName": "string",
"requestStatusDesc": "string",
"messageStatusCode": "string",
"messageStatusName": "string",
"messageStatusDesc": "string",
"isWide": "boolean",
"isAd": "boolean",
"useSmsFailover": "boolean",
"failover": {
"smsServiceId": "string",
"requestId": "string",
"messageId": "string",
"requestStatusCode": "string",
"requestStatusName": "string",
"requestStatusDesc": "string",
"messageStatus": "string",
"messageStatusCode": "string",
"messageStatusName": "string",
"messageStatusDesc": "string"
}
}
],
"pageSize": "integer",
"pageIndex": "integer",
"itemCount": "integer",
"hasMore": "boolean"
}
| 項目 | Mandatory | Type | 説明 | 備考 |
|---|---|---|---|---|
| requestId | Optional | String | 送信リクエスト ID | requestIdで照会する場合にのみ表示 |
| statusCode | Mandatory | String | リクエスト状態コード | 202 - 成功 その他 - 失敗 * HTTP Status規格に従う |
| statusName | Mandatory | String | リクエスト状態名 | success - 成功 processing - 送信中 reserved - 予約中 fail - 失敗 |
| messages.requestTime | Mandatory | DateTime | 送信リクエスト時間 | yyyy-MM-dd'T'HH:mm:ss.SSS |
| messages.messageId | Mandatory | String | メッセージ ID | |
| messages.countryCode | Optional | String | 受信者の国番号 | デフォルト: 82 |
| messages.to | Mandatory | String | 受信者番号 | |
| messages.content | Mandatory | String | 友達トークメッセージの内容 | |
| messages.plusFriendId | Mandatory | String | カカオトークチャンネル名((旧)プラス友達 ID) | |
| messages.completeTime | Optional | DateTime | 送信レポート(処理完了)時間 | yyyy-MM-dd'T'HH:mm:ss |
| messages.requestStatusCode | Mandatory | String | 送信リクエスト状態コード | A000 - 成功 その他のコード - 失敗(Desc項目に失敗理由が明示される) |
| messages.requestStatusName | Mandatory | String | 送信リクエスト状態名 | success - 成功 fail - 失敗 |
| messages.requestStatusDesc | Mandatory | String | 送信リクエスト状態の内容 | |
| messages.messageStatusCode | Mandatory | String | 送信結果状態コード | 0000 - 成功 その他のコード - 失敗(Desc項目に失敗理由が明示される) |
| messages.messageStatusName | Mandatory | String | 送信結果状態名 | success - 成功 processing - 処理中 * 送信リクエスト成功後、メッセージ送信サーバで処理中の状態 * messageCode、messageDescが照会されていない fail - 失敗 |
| messages.messageStatusDesc | Mandatory | String | 送信結果状態の内容 | |
| messages.isWide | Mandatory | Boolean | ワイドかどうか | |
| messages.isAd | Mandatory | Boolean | 広告メッセージかどうか | |
| messages.useSmsFailover | Mandatory | Boolean | SMS Failover使用の有無 | |
| messages.failover | Optional | Object | SMS Failover | |
| messages.failover.smsServiceId | Optional | String | SMS Failoverのサービス ID | |
| messages.failover.requestId | Optional | String | SMS Failoverの送信リクエスト ID | |
| messages.failover.messageId | Optional | String | SMS Failoverの送信メッセージ ID | |
| messages.failover.requestStatusCode | Optional | String | SMS Failoverの送信リクエスト状態コード | エラーコード表を参考 |
| messages.failover.requestStatusName | Optional | String | SMS Failoverの送信リクエスト状態名 | success - 成功 fail - 失敗 |
| messages.failover.requestStatusDesc | Optional | String | SMS Failoverの送信リクエスト状態の内容 | |
| messages.failover.messageStatus | Optional | String | SMS Failoverの送信処理状態 | READY: 待機 PROCESSING: 処理中 COMPLETED: 処理完了 |
| messages.failover.messageStatusCode | Optional | String | SMS Failover送信端末の受信状態結果コード | エラーコード表を参考 |
| messages.failover.messageStatusName | Optional | String | SMS Failover送信端末の受信結果名 | |
| messages.failover.messageStatusDesc | Optional | String | SMS Failover送信端末の受信内容 | |
| pageSize | Mandatory | Integer | ページサイズ | |
| nextToken | Optional | String | 次のページのトークン | |
| itemCount | Mandatory | Integer | 照会結果ページ内のメッセージ数 | |
| hasMore | Mandatory | Boolean | 次のページの存在有無 |
レスポンスステータス
| HTTP Status | Desc |
|---|---|
| 200 | OK(照会完了) |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 500 | Internal Server Error |
メッセージ送信結果の照会
メッセージの送信結果を照会します。
リクエスト URL
GET https://sens.apigw.ntruss.com/friendtalk/v2/services/{serviceId}/messages/{messageId}
x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}
Path Variables
| 項目 | Mandatory | Type | 説明 | 備考 |
|---|---|---|---|---|
| serviceId | Mandatory | String | サービス ID | プロジェクト登録時に発行されたサービス ID |
| messageId | Mandatory | String | メッセージ ID | メッセージ送信時に返されるメッセージ識別子 |
Headers
リクエストボディ
なし
レスポンスボディ
{
"messageId":"string",
"requestId":"string",
"requestTime":"string",
"completeTime":"string",
"plusFriendId":"string",
"countryCode":"string",
"to":"string",
"content":"string",
"requestStatusCode":"string",
"requestStatusName":"string",
"requestStatusDesc":"string",
"messageStatusCode":"string",
"messageStatusName":"string",
"messageStatusDesc":"string",
"isWide":"boolean",
"isAd":"boolean",
"imageId":"string",
"imageName":"string",
"imageUrl":"string",
"imageLink":"string",
"useSmsFailover":"boolean",
"failover": {
"smsServiceId":"string",
"requestId":"string",
"requestStatusCode":"string",
"requestStatusName":"string",
"requestStatusDesc":"string",
"messageId":"string",
"messageStatus":"string",
"messageStatusCode":"string",
"messageStatusName":"string",
"messageStatusDesc":"string"
}
}
| 項目 | Mandatory | Type | 説明 | 備考 |
|---|---|---|---|---|
| messageId | Mandatory | String | メッセージ ID | |
| requestId | Mandatory | String | 送信リクエスト ID | |
| requestTime | Mandatory | DateTime | 送信リクエスト時間 | yyyy-MM-dd'T'HH:mm:ss.SSS |
| completeTime | Optional | DateTime | 送信レポート(処理完了)時間 | yyyy-MM-dd'T'HH:mm:ss |
| plusFriendId | Mandatory | String | カカオトークチャンネル名((旧)プラス友達 ID) | |
| templateCode | Mandatory | String | テンプレートコード | |
| countryCode | Optional | String | 受信者の国番号 | デフォルト: 82 |
| to | Mandatory | String | 受信者番号 | |
| content | Mandatory | String | 友達トークメッセージの内容 | |
| requestStatusCode | Mandatory | String | 送信リクエスト状態コード | A000 - 成功 その他のコード - 失敗(Desc項目に失敗理由が明示される) |
| requestStatusName | Mandatory | String | 送信リクエスト状態名 | success - 成功 fail - 失敗 |
| requestStatusDesc | Mandatory | String | 送信リクエスト状態の内容 | |
| messageStatusCode | Mandatory | String | 送信結果状態コード | 0000 - 成功 その他のコード - 失敗(Desc項目に失敗理由が明示される) |
| messageStatusName | Mandatory | String | 送信結果状態名 | success - 成功 processing - 処理中 * 送信リクエスト成功後、メッセージ送信サーバで処理中の状態 * messageCode、messageDescが照会されていない fail - 失敗 |
| messageStatusDesc | Mandatory | String | 送信結果状態の内容 | |
| isWide | Mandatory | Boolean | ワイドかどうか | |
| isAd | Mandatory | Boolean | 広告メッセージかどうか | |
| imageId | Optional | String | 画像 ID | |
| imageName | Optional | String | 画像名 | |
| imageUrl | Optional | String | 画像 URL | |
| imageLink | Optional | String | 画像リンク | |
| useSmsFailover | Mandatory | Boolean | SMS Failover使用の有無 | |
| failover | Optional | Object | SMS Failover使用の有無 | |
| failover.smsServiceId | Optional | String | SMS Failoverのサービス ID | |
| failover.requestId | Optional | String | SMS Failoverの送信リクエスト ID | |
| failover.requestStatusCode | Optional | String | SMS Failoverの送信リクエスト状態コード | エラーコード表を参考 |
| failover.requestStatusName | Optional | String | SMS Failoverの送信リクエスト状態名 | success - 成功 fail - 失敗 |
| failover.requestStatusDesc | Optional | String | SMS Failoverの送信リクエスト状態の内容 | |
| failover.messageId | Optional | String | SMS Failoverの送信メッセージ ID | |
| failover.messageStatus | Optional | String | SMS Failoverの送信処理状態 | READY: 待機 PROCESSING: 処理中 COMPLETED: 処理完了 |
| failover.messageStatusCode | Optional | String | SMS Failover送信端末の受信状態結果コード | エラーコード表を参考 |
| failover.messageStatusName | Optional | String | SMS Failover送信端末の受信結果名 | |
| failover.messageStatusDesc | Optional | String | SMS Failover送信端末の受信内容 |
Failoverのリクエスト状態コード
| requestStatusCode | Desc |
|---|---|
| 0 | 成功 |
| E4000 | failover設定が有効ではない |
| E4001 | failover設定の情報が抜けている |
| E4002 | failover SMSサービスが設定されていない |
| E4003 | failover SMS type(SMS、LMS)が設定されていない |
| E4004 | failover SMSの発信番号が設定されていない |
| E4005 | failover SMSの件名が設定されていない |
| E4006 | failover SMSの内容が設定されていない |
| E4007 | failover SMSの受信番号が設定されていない |
| E4008 | failover SMSサービスが使用可能な状態ではない |
| E4009 | failover SMSの発信番号が認証されていない |
| E4010 | failover SMS 080無料受信拒否サービスが使用可能な状態ではない |
| E4999 | failover設定のパースエラー(サポートセンターに要相談) |
| E5000 | 内部エラー(サポートセンターに要相談) |
レスポンスステータス
| HTTP Status | Desc |
|---|---|
| 200 | OK(照会完了) |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 500 | Internal Server Error |
予約メッセージ
予約メッセージ状態の照会
メッセージの予約送信状態を照会します。
GET https://sens.apigw.ntruss.com/friendtalk/v2/services/{serviceId}/reservations/{reserveId}/reserve-status
x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}
Path Variables
| 項目 | Mandatory | Type | 説明 | 備考 |
|---|---|---|---|---|
| serviceId | Mandatory | String | サービス ID | プロジェクト登録時に発行されたサービス ID |
| reserveId | Mandatory | String | 予約メッセージ ID | 予約送信リクエスト照会時に返されるメッセージ識別子(requestId) |
Headers
リクエストボディ
なし
レスポンスボディ
{
"reserveId": "string",
"reserveTimeZone": "string",
"reserveTime": "string",
"reserveStatus": "string"
}
| 項目 | Mandatory | Type | 説明 | 備考 |
|---|---|---|---|---|
| reserveId | Mandatory | String | 予約メッセージ ID | 予約送信リクエスト照会時に返されるメッセージ識別子(requestId) |
| reserveTime | Mandatory | String | 予約日時 | メッセージの送信予約日時(yyyy-MM-dd HH:mm) |
| reserveTimeZone | Mandatory | String | 予約日時のタイムゾーン | 予約日時のタイムゾーン(デフォルト: Asia/Seoul) *サポートタイムゾーンリスト * TZ database nameの値を使用 |
| reserveStatus | Mandatory | String | 予約の状態 | READY - 送信待ち PROCESSING - 送信リクエスト中 CANCELED - 送信キャンセル FAIL - 送信リクエスト失敗 DONE - 送信リクエスト成功 STALE - 送信リクエスト失敗 (時間オーバー) |
レスポンスステータス
| HTTP Status | Desc |
|---|---|
| 200 | OK(照会完了) |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 500 | Internal Server Error |
予約メッセージのキャンセル
メッセージの送信予約をキャンセルします。
DELETE https://sens.apigw.ntruss.com/friendtalk/v2/services/{serviceId}/reservations/{reserveId}
x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}
Path Variables
| 項目 | Mandatory | Type | 説明 | 備考 |
|---|---|---|---|---|
| serviceId | Mandatory | String | サービス ID | プロジェクト登録時に発行されたサービス ID |
| reserveId | Mandatory | String | 予約メッセージ ID | 予約送信リクエスト照会時に返されるメッセージ識別子(requestId) |
Headers
リクエストボディ
なし
レスポンスボディ
なし
レスポンスステータス
| HTTP Status | Desc |
|---|---|
| 204 | No Content(削除完了) |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 500 | Internal Server Error |
カカオトークチャンネル
チャンネルの照会
カカオトークチャンネルを照会します。
GET https://sens.apigw.ntruss.com/friendtalk/v2/services/{serviceId}/channels
x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}
Path Variables
| 項目 | Mandatory | Type | 説明 | 備考 |
|---|---|---|---|---|
| serviceId | Mandatory | String | サービス ID | プロジェクト登録時に発行されたサービス ID |
Headers
リクエストボディ
なし
レスポンスボディ
[
{
"createTime": "string",
"updateTime": "string",
"serviceId": "string",
"channelId": "string",
"channelName": "string",
"channelStatus": "string",
"useSmsFailover": "boolean"
}
]
| 項目 | Mandatory | Type | 説明 | 備考 |
|---|---|---|---|---|
| createTime | Mandatory | String | 作成時間 | format: LocalDateTime |
| updateTime | Optional | String | 更新時間 | format: LocalDateTime |
| serviceId | Mandatory | String | サービス ID | プロジェクト登録時に発行されたサービス ID |
| channelId | Mandatory | String | カカオトークチャンネル ID | |
| channelName | Mandatory | String | カカオトークチャンネル名 | |
| channelStatus | Mandatory | String | カカオトークチャンネルの状態 | - 正常: ACTIVE - 削除: DELETED - 完全削除中: DELETING_PERMANENTLY - 完全削除: PERMANENTLY_DELETED - ブロック: BLOCKED - 削除遅延中: PENDING_DELETE |
| useSmsFailover | Mandatory | Boolean | SMS代替送信を使用するか否か |
レスポンスステータス
| HTTP Status | Desc |
|---|---|
| 200 | OK |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 429 | Too Many Requests |
| 500 | Internal Server Error |
画像
イメージのアップロード
友達トークの送信に使用する画像をアップロードします。
画像は1年間保管され、その後は自動削除されるため使用できません。
リクエスト URL
POST https://sens.apigw.ntruss.com/friendtalk/v2/services/{serviceId}/images
Content-Type: multipart/form-data; boundary=a29b1180-70f5-42f7-afbe-0d68a15f2370
x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}
Path Variables
| 項目 | Mandatory | Type | 説明 | 備考 |
|---|---|---|---|---|
| serviceId | Mandatory | String | サービス ID | プロジェクト登録時に発行されたサービス ID |
Headers
リクエストパラメータ
| 項目 | Mandatory | Type | 説明 | 備考 |
|---|---|---|---|---|
| plusFriendId | Mandatory | String | カカオトークチャンネル名((旧)プラス友達 ID) | |
| imageFile | Mandatory | File | 画像ファイル | - 共通 * jpg、pngのみ対応 * 500KB以下 - 一般 * 推奨サイズ: 720px x 720px * 横500px以上、横 * 縦比が2:1以上で3:4以下の場合にのみアップロード可能 - ワイド * 制限サイズ: 800px x 600px * 横 * 縦比が4:3の場合にのみアップロード可能 |
| isWide | Optional | Boolean | ワイド画像かどうか | ワイド画像をアップロードする時、ワイド友達トークメッセージとして送信される * defealt: false |
レスポンスボディ
{
"imageId":"string",
"imageName":"string",
"imageUrl":"string",
"isWide":"boolean",
"createTime":"string"
}
| 項目 | Mandatory | Type | 説明 | 備考 |
|---|---|---|---|---|
| imageId | Mandatory | Strng | 画像 ID | |
| imageName | Mandatory | String | 画像ファイル名 | |
| imageUrl | Mandatory | String | 画像 URL | |
| isWide | Mandatory | Boolean | ワイドかどうか | |
| createTime | Mandatory | DateTime | 画像をアップロードした日時 |
レスポンスステータス
| HTTP Status | Desc |
|---|---|
| 200 | OK (アップロード完了) |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 500 | Internal Server Error |
イメージリストの照会
アップロードされた画像リストを照会します。
リクエスト URL
GET https://sens.apigw.ntruss.com/friendtalk/v2/services/{serviceId}/images
x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}
Path Variables
| 項目 | Mandatory | Type | 説明 | 備考 |
|---|---|---|---|---|
| serviceId | Mandatory | String | サービス ID | プロジェクト登録時に発行されたサービス ID |
Headers
Parameters
| 項目 | Mandatory | Type | 説明 | 備考 |
|---|---|---|---|---|
| pageIndex | Optional | Integer | ページインデックス | デフォルト: 0 |
| pageSize | Optional | Integer | ページサイズ | デフォルト: 20 (1~100以内の数字のみ入力可能) |
リクエストボディ
なし
レスポンスボディ
{
"items": [
{
"imageId": "string",
"imageName": "string",
"imageUrl": "string",
"isWide": "boolean",
"createTime": "string"
}
],
"pageIndex": "integer",
"pageSize": "integer",
"itemCount": "integer",
"hasPrevious": "boolean",
"hasNext": "boolean",
"totalCount": "integer"
}
| 項目 | Mandatory | Type | 説明 | 備考 |
|---|---|---|---|---|
| items | Mandatory | Array of Object | 画像データリスト | 画像データを参照 |
| pageIndex | Mandatory | Integer | ページインデックス | |
| pageSize | Mandatory | Integer | ページサイズ | |
| itemCount | Mandatory | Integer | 照会結果のアイテム数 | |
| hasPrevious | Mandatory | Boolean | 以前のページの存在有無 |
|
| hasNext | Mandatory | Boolean | 次のページの存在有無 |
|
| totalCount | Mandatory | Integer | 総数 |
レスポンスステータス
| HTTP Status | Desc |
|---|---|
| 200 | OK (照会完了) |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 500 | Internal Server Error |
画像の個別照会
アップロードされた画像を個別照会します。
リクエスト URL
GET https://sens.apigw.ntruss.com/friendtalk/v2/services/{serviceId}/images/{imageId}
x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}
Path Variables
| 項目 | Mandatory | Type | 説明 | 備考 |
|---|---|---|---|---|
| serviceId | Mandatory | String | サービス ID | プロジェクト登録時に発行されたサービス ID |
| imageId | Mandatory | String | 画像 ID | アップロードされた画像 ID |
Headers
リクエストボディ
なし
レスポンスボディ
{
"imageId":"string",
"imageName":"string",
"imageUrl":"string",
"isWide":"boolean",
"createTime":"string"
}
画像データ
| 項目 | Mandatory | Type | 説明 | 備考 |
|---|---|---|---|---|
| imageId | Mandatory | Strng | 画像 ID | |
| imageName | Mandatory | String | 画像ファイル名 | |
| imageUrl | Mandatory | String | 画像 URL | |
| isWide | Mandatory | Boolean | ワイドかどうか | |
| createTime | Mandatory | DateTime | 画像をアップロードした日時 |
レスポンスステータス
| HTTP Status | Desc |
|---|---|
| 200 | OK (照会完了) |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 500 | Internal Server Error |
イメージの削除
アップロードされた画像を削除します。
リクエスト URL
DELETE https://sens.apigw.ntruss.com/friendtalk/v2/services/{serviceId}/images/{imageId}
x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}
Path Variables
| 項目 | Mandatory | Type | 説明 | 備考 |
|---|---|---|---|---|
| serviceId | Mandatory | String | サービス ID | プロジェクト登録時に発行されたサービス ID |
| imageId | Mandatory | String | 画像 ID | アップロードされた画像 ID |
Headers
リクエストボディ
なし
レスポンスボディ
なし
レスポンスステータス
| HTTP Status | Desc |
|---|---|
| 204 | No Content(削除完了) |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 500 | Internal Server Error |
エラーコード
BizMessageの受信結果コード
| Status | Error text | Desc |
|---|---|---|
| 0000 | - | 正常に送信 |
| 1001 | NoJsonBody | Request Bodyが JSON形式ではない |
| 1002 | InvalidHubPartnerKey | パートナーキーが有効ではない |
| 1003 | InvalidSenderKey | 送信プロファイルキーが有効ではない |
| 1004 | NoValueJsonElement | Request BODY(JSON)で nameが見つからない |
| 1005 | SenderNotFound | 送信プロファイルが見つからない |
| 1006 | DeletedSender | 削除された送信プロファイル |
| 1007 | StoppedSender | ブロック状態の送信プロファイル |
| 1011 | ContractNotFound | 契約情報が見つからない |
| 1012 | InvalidUserKeyException | 正しくない形式のユーザーキーリクエスト |
| 1013 | InvalidAppLink | 有効ではないアプリリンク |
| 1014 | InvalidBizNum | 有効ではない事業者番号 |
| 1015 | TalkUserIdNotFonud | 有効でないアプリユーザー IDリクエスト |
| 1016 | BizNumNotEqual | 事業者登録番号の不一致 |
| 1020 | InvalidReceiveUserException | 有効なユーザー識別子の値がまったくない場合 |
| 1021 | BlockedProfile | ブロック状態のカカオトークチャンネル(カカオトークチャンネル運用ツールで確認) |
| 1022 | DeactivatedProfile | 非活性状態のカカオトークチャンネル(カカオトークチャンネル運用ツールで確認) |
| 1023 | DeletedProfile | 削除されたカカオトークチャンネル(カカオトークチャンネル運用ツールで確認) |
| 1024 | DeletingProfile | 削除待ち状態のカカオトークチャンネル(カカオトークチャンネル運用ツールで確認) |
| 1025 | SpammedProfile | メッセージブロック状態のカカオトークチャンネル(カカオトークチャンネル運用ツールで確認) |
| 1026 | UnableUseMessageType | msg_typeで使用できない response_methodでリクエスト(画像通知トーク(AI)はリアルタイムで送信不可) |
| 1027 | - | チャンネルメッセージ制裁状態によるメッセージ送信失敗 |
| 1030 | InvalidParameterException | 正しくないパラメータリクエスト |
| 1033 | - | テンプレートタイプとメッセージタイプが一致しない |
| 2000 | FailedToCheckFriendshipException | トークチャンネルとの友達関係確認時のエラー(システムエラー) |
| 2003 | FailedToSendMessageByNoFriendshipException | メッセージの送信失敗 (テストサーバでカカオトークチャンネルを追加していない場合) |
| 2004 | FailedToMatchTemplateException | テンプレートと一致してるかどうかを確認中にエラー発生 (カカオトークの内部エラー) |
| 2005 | FailedToReadImageException | カカオから画像のメタ情報を読み込み中にエラー |
| 2006 | FailedToMatchSerialNumberPrefixPattern | シリアル番号形式の不一致 |
| 3000 | UnexceptedExcetpion | 予期せぬエラーの発生 |
| 3005 | AckTimeoutException | メッセージを送信したが、受信が確認できてない(成否が不明) |
| 3006 | FailedToSendMessageException | カカオトーク内部システムエラーによるメッセージ送信失敗 |
| 3008 | InvalidPhoneNumberException | 電話番号エラー |
| 3010 | JsonParsseExcetpion | JSONパースエラー |
| 3011 | MessageNotFoundException | メッセージが存在しない |
| 3012 | SerialNumberDuplicatedException | メッセージのシリアル番号が重複している(メッセージのシリアル番号は固有の値でなければならない) |
| 3013 | MessageEmptyException | 空のメッセージ |
| 3014 | MessageLengthOverLimitException | メッセージの長さ制限エラー(テキストタイプ1000文字をオーバー、画像タイプ400文字をオーバー) |
| 3015 | TemplateNotFoundException | テンプレートが見つからない |
| 3016 | NoMatchedTemplateException | メッセージ内容がテンプレートと一致しない |
| 3018 | NoSendAvailableException | メッセージを送信できない |
| 3019 | MessageNoUserException | トークのユーザーではない |
| 3020 | MessageUserBlockedAlimTalkException | 通知トークブロック |
| 3021 | MessageNotSupportedKakaotalkException | トークの最低バージョンをサポートしない |
| 3022 | NoSendAvailableTimeException | メッセージが送信可能な時間ではない(友達トーク/マーケティングメッセージは08時~20時まで送信可能) |
| 3023 | MessageInvalidVideoException | メッセージに含まれるビデオを送信できない(ビデオのアドレスまたはサムネイル画像アドレスが正しくないか、サムネイル画像が規格に合わない) |
| 3024 | MessageInvaildImageException | メッセージに含まれた画像を送信できない |
| 3025 | ExceedMaxVariableLengthException | 変数の文字数制限を超過 |
| 3026 | Button chat_extra(event)-InvalidExtra(EventName)Exception '([A-Za-z0-9_]{1,50})' | 相談/ボット切り替えボタン extra、event文字数の制限を超過 |
| 3027 | NoMatchedTemplateButtonException | ボタンの内容がテンプレートと一致しない |
| 3028 | NoMatchedTemplateTitleException | メッセージの強調表記件名がテンプレートと一致しない |
| 3029 | ExceedMaxTitleLengthException | メッセージの強調表記件名の長さが制限を超過(50文字) |
| - | ||
| 3030 | NoMatchedTemplateWithMessageTypeException | メッセージタイプやテンプレートの強調タイプが一致しない |
| 3031 | NoMatchedTemplateHeaderException | ヘッダがテンプレートと一致しない |
| 3032 | ExceedMaxHeaderLengthException | ヘッダの長さ制限を超過(16文字) |
| 3033 | NoMatchedTemplateItemHighlightException | アイテムハイライトがテンプレートと一致しない |
| 3034 | ExceedMaxItemHighlightTitleLengthException | アイテムハイライトの件名の長さが制限を超過(画像がない場合は30文字、画像がある場合は21文字) |
| 3035 | ExceedMaxItemHighlightDescriptionLengthException | アイテムハイライトの説明の長さが制限を超過(画像がない場合は19文字、画像がある場合は14文字) |
| 3036 | NoMatchedTemplateItemListException | アイテムリストがテンプレートと一致しない |
| 3037 | ExceedMaxItemDescriptionLengthException | アイテムリストのアイテムの説明の長さが制限を超過(23文字) |
| 3038 | NoMatchedTemplateItemSummaryException | アイテムのサマリー情報がテンプレートと一致しない |
| 3039 | ExceedMaxItemSummaryDescriptionLengthException | アイテムサマリー情報の説明の長さが制限を超過(14文字) |
| 3040 | InvalidItemSummaryDescriptionException | アイテムのサマリー情報の説明が有効でない文字を含む(通貨記号/コード、数字、コンマ、小数点、スペースを除いた文字を含む) |
| 3041 | MessageInvalidWideItemListLengthException | ワイドアイテムリスト数の最小値と最大値が一致しない |
| 3042 | NoMatchedTemplateRepresentLinkException | 代表リンクがテンプレートと一致しない |
| 3046 | ExceedMaxAdditionalContentLengthException | 付加情報の最大長さ制限エラー |
| 3047 | ExceedMaxCommerceTitleLengthException | コマース情報、商品名の最大長さ制限エラー |
| 3050 | MessageNotSupportedUnsubscribeException | 受信同意拒否スペック(Nタイプ)をサポートしない |
| 3051 | InvalidateCarouselItemMinException or InvalidateCarouselItemMaxException | カルーセルアイテムリスト数の最小値と最大値が一致しない |
| 3052 | CarouselMessageLengthOverLimitException | カルーセルアイテムメッセージが長さ制限を超過 |
| 3056 | WideItemListTitleLengthOverLimitException | ワイドアイテムリストタイトルの長さ制限エラー |
| 3058 | CarouselHeaderLengthOverLimitException | カルーセルヘッダの長さ制限エラー |
| 3059 | MessageNotSupportedCouponException | クーポンのスペックをサポートしない |
| 4000 | ResponseHistoryNotFoundException | メッセージ送信結果が見つからない |
| 4001 | UnKnownMessageStatusError | 不明なメッセージ状態 |
| 7011 | - | シリアル番号パターンのエラー |
| 7014 | - | メッセージ有効時間のオーバーエラー |
| 8512 | - | 受信者タイプが見つからない |
| 8514 | - | request_idが見つからない |
| 8520 | - | サポートしない商品タイプエラー |
| 8521 | - | サポートしないメッセージタイプエラー |
| 8522 | - | サポートしないテキストタイプエラー |
| 8523 | - | サポートしない response methodエラー |
| 8530 | - | 受信者リストサイズエラー |
| 8999 | - | 内部サーバエラー |
| 9998 | 現在サービスを提供していません。 | システムにトラブルが発生し、担当者が確認中 |
| 9999 | システムに原因不明のトラブルが発生し、担当者が確認中 | システムにトラブルが発生し、担当者が確認中 |
| B000 | Prepare to relay failed | 中継会社への送信のための事前作業に失敗 |
| B001 | Request to relay failed | 中継会社への送信失敗 |
| B002 | Filtering for request to relay failed | 無効なリクエストによりフィルタリングされる |
| B003 | Invalid phone number format | 無効な発信番号形式 |
| B004 | Quota Exceed | クォーター超過 |
| B005 | Message processing timeout exceed | メッセージのリクエスト時間と処理時間の差が許容範囲外である |
| B400 | Invalid Request | メッセージ形式エラー |
| B999 | Unexpected server error | 予期せぬエラー |