API 上の Viber ビジネス
Viberメッセージを送信する前に、コンプライアンスとガイドラインとメッセージタイプの詳細に精通していることを確認してください。
Viber ビジネスメッセージ API を使用して (opens in a new tab)、conversational、promotional、および transactional メッセージをエンドユーザーに送信します。
認証ガイド (opens in a new tab)に従って、Infobip との接続をセキュリティで保護します。
送信メッセージ
API (opens in a new tab) を介して次の種類のメッセージを送信できます。
- テンプレート
- テキスト
- 画像
- ビデオ
- ファイル
- テキスト+行動を促すフレーズボタン
- テキスト+画像
- テキスト + 動画
- テキスト + 画像 + コールトゥアクションボタン
- テキスト + 動画 + 行動を促すフレーズのボタン
メッセージテンプレート
このメッセージの種類は、ロシア、ベラルーシ、ウクライナでのみ使用できます。
ロシア、ベラルーシ、ウクライナでは、エンドユーザーに送信するトランザクション(情報)メッセージは、Viberによって承認された登録済みテンプレートを使用する必要があります。これらのテンプレートは、事前定義されたメッセージ構造に従い、Viber ガイドラインに従う必要があります。
登録済みのメッセージ テンプレートを使用しないトランザクションメッセージを送信すると、標準のプロモーションメッセージ料金が請求されます。
メッセージテンプレートを送信するには、専任のInfobipアカウントマネージャーに連絡するか、 Infobipお問い合わせフォーム (opens in a new tab)を使用して営業チームにお問い合わせください。
ビジネスがこのセクションに記載されている国のいずれかに拠点を置いていて、これらの国以外の顧客にトランザクションメッセージを送信する場合は、2 つのアカウント (1 つは上記の国内の顧客との通信用、もう 1 つは他のすべての国の顧客用) を使用する必要があります。
プライマリデバイス
このセクションは、テキストテンプレートとメッセージテンプレートにのみ適用されます。
エンドユーザーは、複数のデバイスにViberをインストールすることができます。例:スマートフォン、タブレット、デスクトップ。スマートフォンまたはタブレットのいずれかがプライマリデバイスであり、その他はセカンダリデバイスです。
エンドユーザーに送信したViberメッセージは、すべてのデバイスに配信されます。エンド ユーザーのプライマリ デバイスにのみメッセージを強制的に配信する場合は、API リクエストで toPrimaryDeviceOnly
パラメーターを true に設定します。
推奨 事項
- 書式設定されたメッセージを送信するには、テキスト文字列にマークダウンを追加します。送信メッセージ > テキスト > テキストの書式設定 セクションを参照してください。メッセージテンプレートでテキストの書式設定を使用することはできません。
- API を介して送信されたメディア URL が解析され、コンテンツが正しく表示されるようにするには、次のガイドラインに従います。
- 要求では、セキュリティで保護された HTTPS リンクのみを使用します。
- 画像の URL が CAPTCHA で保護されていないことを確認します。
- 画像には、.jpg、.jpeg、.png、.bmp、.svg、.webp のファイル形式を使用します。詳細な仕様については、送信メッセージ > 画像 セクションを参照してください。
- ビデオには、.3gp、.m4v、.mov、.mp4 のファイル形式を使用します。詳細な仕様については、送信メッセージ > ビデオセクションを参照してください。
- ファイルには、次のファイル形式を使用します: .csv、.doc、.docx、.dot、.dotx、.eps、.fods、.fodt、.info、.odf、.ods、.odt、.pdax、.pdf、.rtf、.txt、.xls、.xlsx、.xltx、.xps、xlsm。詳細な仕様については、ファイルの送信メッセージ>を参照してください。
追加機能の恩恵を受けたい場合に備えて、送信リクエストに補足オプションを追加することを忘れないでください。
メッセージ・オプション
追加のメッセージ オプションを API 要求に適用できます。
一括メッセージ
1 つの API リクエストで複数のテキストメッセージまたはメッセージテンプレートを送信できます。
メッセージのスケジューリング
すべての通信をスケジュールできます。開始日、時刻、タイムゾーンを設定できます。この機能は、夜間に顧客の邪魔をしたくない場合や、最適なコンバージョンのために特定の期間にのみメッセージを送信したい場合に便利です。
"SendAt": 2015-07-07T17:00:00.000+01:00
追加のスケジュールオプションは、送信速度制限を設定することです。たとえば、メッセージを一括送信して、より長い期間にわたってメッセージを配信する場合、送信速度を制限できます。この機能は、ディスパッチされたメッセージに埋め込まれた行動喚起に受信者が反応することが予想される場合に役立ちます。そうすることで、エンドユーザーからの応答の流入でシステムやエージェントを圧倒することを回避し、運用上の負担を回避できます。定期的に送信される**メッセージの数(量)**を設定できます。使用可能な時間単位は、分、時間、日です。
"sendingSpeedLimit": {
"amount": 30,
"timeUnit": "HOUR"
}
また、メッセージを配信しない特定のメッセージ配信期間を設定することもできます。開始時刻(時/分)、終了時刻(時/分)、曜日を設定できます。時刻は UTC タイム ゾーンで表されます。
"deliveryTimeWindow": {
"days": [
"MONDAY",
"TUESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY",
"SATURDAY",
"SUNDAY"
],
"from": {
"hour": 6,
"minute": 0
},
"to": {
"hour": 15,
"minute": 30
}
}
有効期間
メッセージには、システムがメッセージの配信を試みる特定の期間があります。たとえば、オーディエンスにメッセージを送信するときに、一部のユーザーが携帯電話をオフにしている場合、システムは有効期間が経過するまでこれらのユーザーへの配信を再試行します。デフォルトおよび最大有効期間は 48 時間です。要求ごとに設定する必要はありません。より短い期間を設定する場合は、有効期間で定義する必要があります。使用可能な時間単位は、秒、分、時間です。既定値は minutes です。
"validityPeriod": {
"amount": 30,
"timeUnit": "MINUTES"
}
SMSフェイルオーバー
定義された期間内にViberメッセージが終了ユーザーに到達しない場合に備えて、SMSへのフェールオーバーオプションを追加します。また、SMSメッセージの有効期間を設定することもできます。
"smsFailover": {
"sender": "41793026726",
"text": "Failover message text",
"validityPeriod": {
"amount": 2,
"timeUnit": "HOURS"
}
}
プラットホーム
Viber APIはCPaaS Xとシームレスに連携します。これにより、ニーズに合った方法で構成とリソースをより柔軟に管理できます。CPaaS Xの詳細については、CPaaS Xドキュメントを参照してください。
"platform": {
"entityId": "priorityCustomer",
"applicationId": "clientTestEnvironment"
}
Webhook (英語)
webhooks
> delivery
> url
パラメータ オプションは、ユーザーがAPI応答を受信するURLを設定できるようにする場合に使用します。API 要求の Webhook パラメーターの下に URL を定義します。
"webhooks": {
"delivery": {
"url": "https://www.example.com/viberbm"
},
}
URL の短縮と追跡
URL を短縮し、これらの URL のクリック数をトラッキングできます。URL トラッキングを有効にしなくても、URL短縮を有効にすることができます。ただし、URL トラッキングを有効にするには、URL 短縮を有効にする必要があります。
URL の短縮と追跡は、次のメッセージの組み合わせでサポートされています。
- テキストのみ: テキスト内の URL
- テキスト+画像:テキスト内のURL
- テキスト + 動画: テキスト内の URL
- テキスト + CTA ボタン: テキスト内の URL と CTA ボタン
- 画像 + テキスト + CTA ボタン: テキスト内の URL と CTA ボタン
- 動画 + テキスト + CTA ボタン: テキスト内の URL と CTA ボタン
- ファイル: メディア URL
URL 短縮
URL 短縮を使用して、エンド ユーザーと共有する URL の長さを短くします。URL は、メッセージ本文に追加すると短縮されます。
次の種類の URL 短縮を使用できます。
種類 | 形容 | 例 | |
---|---|---|---|
既定の短縮 URL | URL 全体を短縮します。 | 元の URL のメッセージ:
| |
カスタム ドメイン短縮 URL | カスタム ドメインを保持するように URL を短縮します。 カスタムドメイン URL短縮は、カスタムドメイン(サブドメイン)を含む URL に対してのみ使用できます。 www.dev.infobip.com カスタムドメイン URL短縮は、プライマリドメインを含む URL には使用できません www.infobip.com | 元の URL のメッセージ:
既定の短縮 URL のメッセージ:
| |
プロトコルの削除 | プライマリ ドメインを含む URL | URL から 'http' または 'https' プレフィックスを削除し、URL を短縮します。 URL にプライマリ ドメインが含まれている場合は、URL 全体が短縮されます。 | 元の URL のメッセージ:
|
カスタム ドメイン (サブドメイン) を含む URL | URL から 'http' または 'https' プレフィックスを削除し、URL を短縮します。 URL にカスタム ドメイン (サブドメイン) が含まれている場合、URL はカスタム ドメインを保持するように短縮されます。 | 元の URL のメッセージ:
プロトコルが削除され、URL が短縮されたメッセージ:
|
URL トラッキング
URL のクリック数を追跡できます。
trackingUrl
を指定し、trackClicks
を true
に設定します。
{
...
"tracking": {
"shortenUrl": true,
"trackClicks": true,
"trackingUrl": "https://webhook.site/077a5470-42f9-471f-a7f2-c67d5b *",
"removeProtocol": true,
"customDomain": "m.infobip.com"
}
}
エンド ユーザーがメッセージ本文の URL をクリックすると、イベントが Infobip に返されます。このイベントはレポートと通知に記録され、クリック通知が届きます。
クリック通知で渡されるデータの構造を以下に示します。
{
"notificationType": "CLICKED",
"recipient": "38591 ***",
"url": "https://www.infobip.com",
"sendDateTime": 1603440470723,
"messageId": "303440456940035 *",
"recipientInfo": {
"deviceType": "Phone",
"os": "Android 10",
"deviceName": "Unknown"
}
}
受信メッセージ
受信メッセージは、双方向通信に API を使用するとリアルタイムで転送されます。メッセージは、Infobip ソリューションで Viber アカウントを設定したときに指定したエンドポイントに転送されます。
Infobip Web インターフェイスからのメッセージを API エンドポイントに転送できるようにするには、関連するアクセス許可を API エンドポイントに付与する必要があります。追加の承認ヘッダーを使用して、接続をセキュリティで保護します。
エンド ユーザーから次の種類のメッセージを 受信 (opens in a new tab) できます。
- テキスト
- 画像
- ビデオ
- ファイル
レポート
メッセージが正常に送信されたら、送信されたメッセージのステータスを確認できます。次のレポートは、定義されたエンドポイントに転送されます。
配信レポートと表示レポートを URL にリアルタイムで転送できます。この機能を設定するには、Infobip アカウント マネージャーに URL を提供します。
(オプション)エンドポイントは、メッセージのAPIリクエストの webhooks
> delivery
> url
パラメーターで定義できます。このエンドポイントを定義しない場合、レポートはプラットフォームで定義されているエンドポイントに転送されます。
オムニ API
API 経由で Viber メッセージを送信するには、シナリオを設定する必要があります。 APIリファレンス (opens in a new tab) を参照してください。
シナリオの作成
最初のステップは、 OMNIシナリオを作成する (opens in a new tab)ことです。OMNIシナリオ構成で、個別に実行されるOMNIステップを定義します。
Viber 送信者 ("channel": "VIBER"
フロー) は、アクティベーションプロセス中に提供された電話番号、つまりアクティベーションされた国際形式の電話番号 (385981234567 など) を使用します。安全な接続が必要です。Infobip 資格情報の Base64 ハッシュの組み合わせ、API キー (推奨)、または トークン を使用します。手順については、API 認証 を参照してください。
リクエスト例
{
"from": "InfoSMS",
"channel": "SMS"
},
{
"from": "3045",
"channel": "VIBER"
}
シナリオは、初期段階でのみ作成します。メッセージを送信するたびにこの手順を繰り返す必要はありません。シナリオは、フェールオーバー シナリオで新しいチャネルを追加するとき、または送信者を変更するときに作成します。
これを既定のシナリオとして使用するには、既定値を true
に設定します。この時点から、scenarioKey
はメッセージ送信時の必須パラメータではなくなります。
{
"from": "InfoSMS",
"channel": "SMS"
},
{
"from": "3045",
"channel": "VIBER"
}
key パラメーターは、メッセージの送信時に使用されるため、格納します。
既定のシナリオ
アカウント用に作成した最初のシナリオが、既定のシナリオとして使用されます。これは、別のシナリオを既定のシナリオとして設定するまで使用されます。これを変更するには、既定値を true
に設定します。
回答形式
成功すると、応答ヘッダーのHTTPステータスコードが201 Created
になり、シナリオが作成されます。
承認なしでシナリオを作成しようとすると、401 Unauthorized
エラーが表示されます。
この方法を短期間に頻繁に使用すると、ステータスコード429 Too Many Requests
が表示されます。これにより、メソッドを誤用して多くの不要なシナリオが作成されるのを防ぐことができます。
シナリオを作成したら、シナリオキーを介していつでも参照し、OMNIメッセージの送信に何度でも再利用できます。OMNIメッセージごとに新しいシナリオを作成する必要はありません。
OMNIメッセージの送信
シナリオの作成セクションの説明に従ってOMNIシナリオ(keyパラメーターで識別)を作成したら、定義されたViberおよびSMS通信チャネルを介してOMNIメッセージを送信する準備が整います。
- 定義された
phoneNumber
に Viber メッセージを送信します。 - なんらかの理由で、Viber アプリケーションでメッセージが拒否された場合、またはエンドユーザーに Viber アプリケーションがインストールされていない場合、メッセージは SMS 経由で送信されます。
OMNI メッセージを送信するには、高度な API メソッドを使用できます。 API のドキュメント (opens in a new tab)を参照してください。
設定する必要があるパラメータは、scenarioKey
、phoneNumber
、および各通信チャネルの特定のテキストです。
OMNIのデフォルトの有効期間は、ViberメッセージとSMSメッセージの両方で48時間です。
応答例
{
"to":{
"phoneNumber": "41793026727"
}
}
],
"viber": {
"text": "This Viber message will be delivered to Viber application on the user device."
},
"sms": {
"text": "This is the SMS failover message"
}
Viber経由でリッチメッセージを送信する
テキスト、画像、CTAボタンを含むViberメッセージを送信する方法は次のとおりです。各通信チャネルのカスタム有効期間を設定できます。
テキスト、画像、またはボタンの任意の組み合わせが許可されます。buttonUrl
と buttonText
は必須です。
{
"to":{
"phoneNumber": "41793026727"
}
}
],
"viber": {
"text": "This is the message which will be displayed in Viber Application. It can contain up to 1000 characters. ",
"imageURL": "http://www.infobip.com/infobip-logo.png",
"buttonText": "More information",
"buttonURL": "http://www.infobip.com/",
"isPromotional": true,
"validityPeriod":1
},
"sms": {
"text": "This text will be received via SMS if Viber message is not delivered.",
"validityPeriod":1
}
サポートされている画像形式: .jpeg、.jpg、.png。絵文字は、APIを介してViberチャネルを介して送信することもでき、エンドユーザーエクスペリエンスを向上させます。
SMSへのフェイルオーバー
定義された期間内にViberメッセージが終了ユーザーに到達しない場合に備えて、SMSへのフェールオーバーオプションを追加します。フェイルオーバー・オプションは、すべてのメッセージ・タイプに適用できます。
プライマリデバイス
このセクションは、テキストテンプレートとメッセージテンプレートにのみ適用されます。
エンドユーザーは、複数のデバイスにViberをインストールすることができます。例:スマートフォン、タブレット、デスクトップ。スマートフォンまたはタブレットのいずれかがプライマリデバイスであり、その他はセカンダリデバイスです。
エンドユーザーに送信したViberメッセージは、すべてのデバイスに配信されます。エンド ユーザーのプライマリ デバイスにのみメッセージを強制的に配信する場合は、API リクエストで toPrimaryDeviceOnly
パラメーターを true
に設定します。
推奨 事項
- 書式設定されたメッセージを送信するには、テキスト文字列にマークダウンを追加します。送信メッセージ > テキスト > テキストの書式設定 セクションを参照してください。メッセージテンプレートでテキストの書式設定を使用することはできません。
- API を介して送信されたメディア URL が解析され、コンテンツが正しく表示されるようにするには、次のガイドラインに従います。
- 要求では、セキュリティで保護された HTTPS リンクのみを使用します。
- 画像の URL が CAPTCHA で保護されていないことを確認します。
- 画像には、.jpg、.jpeg、.png、.bmp、.svg、.webp のファイル形式を使用します。詳細な仕様については、送信メッセージ > 画像 セクションを参照してください。
- ビデオには、.3gp、.m4v、.mov、.mp4 のファイル形式を使用します。詳細な仕様については、送信メッセージ > ビデオセクションを参照してください。
- ファイルには、次のファイル形式を使用します: .csv、.doc、.docx、.dot、.dotx、.eps、.fods、.fodt、.info、.odf、.ods、.odt、.pdax、.pdf、.rtf、.txt、.xls、.xlsx、.xltx、.xps、.xlsm。詳細な仕様については、ファイルの送信メッセージ>を参照してください。
配信レポート
高度な API メソッドを使用してメッセージを正常に送信したら、OMNI レポートメソッドを使用して送信されたメッセージのステータスを確認できます。
最も簡単な方法は、クエリ パラメーターなしでメソッドを使用することです。その場合、応答には特定のアカウントに送信されたすべてのメッセージが含まれます。
応答には、次の例に示すように、拒否されたメッセージと配信されたメッセージの両方が含まれます。
応答
{
"results":[
{
"messageId":"1215f543ab19-345f-adbd-12ad31451ed25f35",
"to":"41793026731",
"messageCount": 1,
"sentAt":"2016-02-23T17:41:11.833+0100",
"doneAt":"2016-02-23T17:41:11.843+0100",
"mccMnc":"22801",
"price":{
"pricePerMessage":0.0104,
"currency":"EUR"
},
"status":{
"groupId":2,
"groupName":"UNDELIVERABLE",
"id":9,
"name":"UNDELIVERABLE_NOT_DELIVERED",
"description":"Message sent not delivered"
},
"error":{
"groupId":1,
"groupName":"HANDSET_ERRORS",
"id":6,
"name":"EC_ABSENT_SUBSCRIBER_SM",
"description":"Absent Subscriber",
"permanent":false
},
"channel": "VIBER"
},
{
"messageId":"2315d543441c-335f-1d3d-142d31451ed25f35",
"to":"41793026731",
"sentAt":"2016-06-23T17:40:31.773+0100",
"doneAt":"2016-06-23T17:40:31.787+0100",
"messageCount":1,
"mccMnc":"22801",
"price":{
"pricePerMessage":0.01,
"currency":"EUR"
},
"status":{
"groupId":3,
"groupName":"DELIVERED",
"id":5,
"name":"DELIVERED_TO_HANDSET",
"description":"Message delivered to handset"
},
"error":{
"groupId":0,
"groupName":"OK",
"id":0,
"name":"NO_ERROR",
"description":"No Error",
"permanent":false
},
"channel": "SMS"
}
]
}
すべての API ステータスとエラーコードの完全なリストについては、応答ステータスとエラーコード の記事を参照してください。
配信レポートを URL にリアルタイムで転送することもできます。その場合は、専任のアカウントマネージャーにURLを提供すると、アカウントマネージャーが設定してくれます。
リアルタイム配信レポート
URL にリアルタイムで転送される配信レポートの形式は、OMNI レポートメソッドを使用して取得されるレポートとは異なります。
{
"results": [{
"bulkId": "",
"price": {
"pricePerMessage": 0,
"currency": "EUR"
},
"status": {
"id": 5,
"groupId": 3,
"groupName": "DELIVERED",
"name": "DELIVERED_TO_HANDSET",
"description": "Message delivered to handset"
},
"error": {
"id": 0,
"name": "NO_ERROR",
"description": "No Error",
"groupId": 0,
"groupName": "OK",
"permanent": false
},
"messageId": "fb469d73-d362-463f-b30f-1e959b53badc",
"doneAt": "2019-04-09T16:01:56.494-0300",
"messageCount": 1,
"sentAt": "2019-04-09T16:00:58.647-0300",
"to": "41793026731",
"channel": "VIBER"
}]
}