アドオン公開者ガイド

Twilio Marketplace は、サードパーティーが Twilio 製品上で構築した、または Twilio 製品を補完する、製品やサービスを、Twilio の膨大な開発者コミュニティー向けに販売するための API 対応プラットフォームです。

開発者は、一元化されたセルフサービス式の Marketplace を利用して、API ベースの補完サービスを探してインストールし、コア Twilio API の一部としてそれらを標準的な方法で呼び出します。Twilio は、リストの表示、設定、開発者向け API ポイント、課金、およびパートナーへの支払を管理します。

このガイドは、サービスを Twilio Marketplace に統合したいサードパーティーパートナー向けに書かれています。Marketplace の商品と API 要件について説明します。


アドオンの概要

Marketplace で販売される主力製品は、アドオンです。

アドオンは、開発者による Twilio API の使い方を広げる、組み込み済みのパートナーテクノロジーです。アドオンを使用すると、Twilio とサードパーティーの能力を結集して、短期間で豊富な機能を備えたコミュニケーションエクスペリエンスを構築できます。開発者は、ニーズに合わせて適切なテクノロジーを選択するだけでよく、さまざまなプラットフォームを学習、テスト、および管理する必要はありません。

アドオンは Twilio Marketplace から入手できます。開発者は、検証済みのアドオンのリストから目的のものを選択し、ワンクリックでインストールできます。アドオンをインストールすることで、電話番号のスパムスコアが返されたり、メッセージのセンチメント分析が提供されたりするなど、パートナーの機能が有効になり、Twilio API を拡張できます。

関数レベルで見ると、アドオンはパートナー API をパッケージ化します。また、Twilio が提供するコンテンツに、パートナーのデータソースまたはコンテンツ分析テクノロジを使用して、注釈を付けます。例として、電話番号による該当する層とマーケティングデータのクエリ、番号詐欺/スパムブラックリスト、録音トランスクリプション、メッセージセンチメント分析などがあります。

現在、アドオンパートナーは、Twilio の電話番号、着信メッセージの本文、および通話の録音の各コンテンツを利用できます。

アドオンのタイプ 統合ポイント パートナーが利用可能なデータ 利用モード
電話番号アドオン ルックアップ、着信 SMS、着信音声通話 電話番号(単一、発信元、発信先) 同期
メッセージ分析アドオン 着信SMS 電話番号、メッセージ本文 同期
録音分析アドオン 録音 音声ファイル(単一チャンネル) 非同期

開発者は、アドオンを選択して、自分のアカウントに合わせて設定することによって、使用できるようにします。その後は、サポート用 Twilio API を使用したときにアドオンが呼び出されるように、指定することができます。

Add-onのフロー

画像の alt テキスト

料金と課金

Marketplaceでは、パートナーが希望する料金をもとに設定するTwilio課金システムにおいて、従量課金を実行させることができます。 Twilioはパートナーアドオンの使用量を測定して、開発者のアカウントから料金を引き落とします。 課金額から取引手数料を差し引いた額が、定期的に請求書を通じてパートナーに支払われます。

Marketplace でサポートしているアドオン課金モデルを次に示します。

  • 使用回数型
  • 成功報酬型(未使用):レスポンスの特定の JSON 要素が存在しないことと HTTP ステータスコードに応じた条件付き課金
  • 使用時間型:トランスクリプション/録音アドオン向け

パートナーサービスのパッケージ化によるアドオンの作成

Twilioは、パートナーが希望する1つまたは複数のアドオンをMarketplaceで提供できます。 1つのアドオンに1つのサービス / APIをパッケージ化するか、または1つのサービス / APIを使用目的別に異なる料金を設定した複数のアドオンとして提供するかを選択できます。 後者の例として、データセットが異なる場合(企業情報または消費者情報)やトランスクリプションの言語が異なる場合があります。

パートナーアカウント

現在、Twilio はパートナーの商品ごとに 1 つのマスターアカウントをサポートします。API リクエストはすべて、このアカウントを使用して実行されます。

たとえば、電話番号を受け取り、それを使って綴ることができる英語の語呂合わせを返すウェブサービスを提供するとします。Twilio の利用者は誰でも Twilio ルックアップ API でこのサービスを使用して、語呂合わせの候補を表示できます。1 回ルックアップするごとに 0.0001 ドルを課金します。

これが次の API で提供されるとします(クレデンシャルについてはとりあえず無視します)。

https://www.example.com/twilio_phone_number_example  -d "e164=+18778894546"

この結果、次のレスポンスが得られます。

{
"anagrams": ["+18778TWILIO", ]
}

このサービスは、Marketplace のアドオンとして「Anagram」という名前で提供します。このアドオンには、すべてのマーキングと付随するドキュメント、Twilio の電話番号ルックアップサービスの仕様に従ったウェブサービスの URL が指定されている設定が含まれています。Twilio 開発者は、このサービスを見つけると、自分のアカウントにインストールします。これにより、電話番号の購入/プロビジョニング、着信する通話またはメッセージの受信、または発信する通話またはメッセージの発信の際に、適切であれば、ルックアップ API で Anagram アドオンを使用できるようになります。

curl -X GET https://lookups.twilio.com/v1/PhoneNumbers/18778894546\
-d "AddOns=partner_anagrams" -u "{TwilioAccountSid}:{TwilioAuthToken}"

これは、次のボディーを含む 200 OK レスポンスを返します。

{
    "country_code": "US",
    "phone_number": "+18778894546",
    "national_format": "1 (877) 889-4546",
    "url": "https://lookups.twilio.com/v1/PhoneNumber/+551155256325",    
    "add_ons": {  
           "status": "successful",
           "message": null,
           "code": null,
           "results": {      
                    "partner_anagrams": {
                           "request_sid": "XRc1479687aadf64c62e6ab2b6e0077a1a",
                           "status": "successful",
                           "message": null,
                           "code": null,
                           "result": {
                                   "anagrams": ["+18778TWILIO"]
                           }                           
                    }
            }
    }
}

呼び出されると、Twilio が開発者の HTTP サービスを呼び出して、リクエストされた電話番号を POST します。結果を受け取ると、その中の JSON ボディーを取り出して、リクエストされた他のタイプとともに、レスポンスのペイロードに格納します。

探し方と使い方

開発者は、コンソールで Marketplace を使用してアドオンを探して、インストールします。このプロセスの詳細については、「アドオンの概要」をご覧ください。

Add-onのAPI要件

ここでは、Twilio がサービスにリクエストを送信する方法、サポートされているアドオンタイプごとに渡されるフィールド、および成功レスポンスと失敗レスポンスをフォーマットして返す方法の詳細な仕様について説明します。

ほとんどのアドオンタイプは、インターフェイスとして単純な RESTful HTTP プロトコルを使用します。電話番号ルックアップなどのアドオンでは、同期式リクエスト/レスポンスモデルを使用します。このモデルでは、Twilio は指定されたフォーマットでデータをパートナーに POST して、パートナーはレスポンスボディーに有効な結果セットまたはエラーを格納して応答します。

録音分析など、それ以外のアドオンでは、非同期モデルを使用します。このモデルでは、Twilio はパートナーにデータを POST して、レスポンスとして 202 Accepted を待ち受けます。パートナーは、少し時間が経過してから、Twilio が公開する REST API に結果を POST します。このモデルでは、開発者が設定時にコールバック URL を設定する必要があります。Twilio は、非同期に受信した結果をコールバック URL に中継する処理を担当します。

パートナー向けAPI要件 - リクエスト

TwilioはパートナーのJSON / REST APIを直接取得し、返されるデータとエラーコードをTwilioのAPIのスタイルおよびフォーマットと互換性のある形式に変更します。

API パラメーター

Twilioは、ひとつ以上の下記パラメーターを通じて、Add-on用のAPIにテンプレート項目や定数といったベンダー固有のフィールドを渡すことをサポートしています。

APIパラメーター リクエスト型
Querystring パラメーター GET, POST
JSONディクショナリー POST
www-form-encoded POST
HTTPヘッダー GET, POST

Add-onのタイプについて利用可能なテンプレート・フィールドを満たしたAdd-onのAPIパラメーターをTwilioに提供できます。 (利用可能なフィールドの一覧については、下記セクションをご確認ください) TwilioがAdd-onをインテグレーション・ポイントで極力広範に有効にできるよう、絶対必須なテンプレート・フィールドのみをリクエストするようにしてください。

また、ユーザーが設定可能なパラメーター、特定の値にハードコード化する必要があるパラメーター、および開発者がリクエストの際に指定する必要があるパラメーターを通知することもできます。

現時点で、Lookupのみがリクエスト時パラメーターをサポートしていることにご注意ください。

共通テンプレート・フィールド

下記の表は、利用可能な共通テンプレート・フィールドの一覧です。

テンプレート・フィールド 対応インテグレーション・ポイント アドオンのタイプ 説明
CONSTANT すべて すべて APIパラメーターとしてハードコードされるべき、ベンダー固有の定数データです。
この値はベンダーAPIへの呼び出しごとにTwilioによって渡されます。
{{request_sid}} すべて すべて 全リクエスト用の英数字からなる一意の識別子。 Add-onのAPIで一意な識別子が必要な場合に使用します。
{{vendor defined runtime field}} Lookup - この表の項目の範囲外の任意のベンダー固有データです。
このパラメーターはAPIを呼び出すユーザーによって明示的に渡される必要があり、Twilioによって自動的に補完されません。
{{custom configuration field}} すべて すべて この表の項目の範囲外の任意のベンダー固有データです。
このパラメーターはユーザーによってコンソール上から設定され、Twilioによって自動的に補完されません。
{{SHA256:template_field}} すべて すべて SHA256 hash of any field, e.g. {{SHA256:primary_address}} for SHA256 hash of {{primary_address}} template field in Phone Number integration
{{unix_timestamp}} すべて すべて Unix timestamp

Add-onタイプ固有のテンプレート・フィールド

使用可能な追加のテンプレート・フィールドについては、「特定のAdd-onタイプの必須要件」セクションをご確認ください。

カスタム設定のテンプレート・フィールド

たとえば、Add-onのAPIに追加のパラメーターを渡すことが必要とされる場面では、ユーザーがコンソール上から設定可能なカスタム・フィールドを定義できます。 ひとたび設定が済むと、TwilioはこれらのパラメーターをAdd-onのAPIに他のテンプレート・フィールドと同様に渡します。

User configurable parameters are specified as a JSON schema, provided in the "Configuration JSON Schema". These parameters are mapped into the corresponding UI elements inside console, and the configured values are made available to the Add-on as template fields.

Configuration JSON Schema supports the following JSON elements:

Type-specific Keywords:
  • string (presented as a text field in the UI)
  • number & integer (presented as text field in UI with number validation)
  • boolean (presented as checkbox in UI)

Note : object and array keywords are not supported

Generic keywords :
  • enum (presented as a dropdown list)
  • name (used to render the field label in the UI)
  • _help (used to render a tooltip next to the field in the UI)
  • element_name in the schema is used to define the template variable name.
Combining Schemas and Regular expressions :
  • Supported for input validation and the relevant error message shall be displayed when the input does not validate against the configuration schema.

スキーマ例:

{
  "title": "Config schema",
  "type": "object",
  "properties": {
    "language": {
      "type": "string",
      "name": "Language",
      "_help": "Select the language for your recordings : US English (en_US), UK English (en_UK), Spanish (es)",
      "enum": ["en_US","en_UK","es"]
    },
    "combine_tracks": {
      "type": "boolean",
      "name": "Combine Audio Tracks",
      "_help": "Combine transcriptions from different tracks into one list or keep them separated"
    },
    "keywords": {
      "type": "string",
      "name": "Keywords to detect",
      "_help": "Identify the presence and timestamps for these keywords (Comma separated) in the audio"
    },
    "phone_number": {
      "type": "string",
      "name": "Phone Number",
      "_help": "E164 formatted phone numbers. Only +1 prefixes allowed",
      "pattern": "^\\+(1)+[0-9]*$"
    }
  },
  "required": [
    "language"
  ]
}

このスキーマは以下のようなUIを生成し、これらのテンプレート・フィールドを作成: {{language}}{{combine_tracks}}{{keywords}}、そして{{phone_number}} が、Add-onのAPI中で利用できます。

コンソール内でのAdd-onの設定

認証

現在、Twilio はパートナーの商品ごとに 1 つのアカウントのみサポートしているので、アドオンごとに 1 組のパートナーサービス認証クレデンシャルがサポートされることになります。パートナーは、必要に応じて、提供するすべての商品で 1 組のクレデンシャルを使用することを選択できます。

次の認証スキームがサポートされています。

  • URL クエリー文字列でクレデンシャルを渡す
  • POST リクエストボディーでクレデンシャルを渡す(WWW フォームエンコード済みまたは JSON エンコード済み)
  • HTTP ヘッダーベースの認証(ベーシックまたは Bearer)

既定のHTTPヘッダー

Twilioは、パートナーがそれを望む場合にセキュリティーやデバッグの目的で使用されうるPartner APIへのGET/POSTリクエストとともに常に以下のようなヘッダーのセットを渡します。

ヘッダー名
X-Twilio-VendorAccountSid パートナー(お客様自身)のアカウントのアカウント SID です。

例:AC05b3911315a1322d1dede66eed740000
X-Twilio-Signature このリクエストの署名です。パートナーのアカウントによって署名されたものであり、Twilio から受信したリクエストが変更されていないことを確認するために使用します。署名アルゴリズムの詳細については、https://www.twilio.com/docs/api/security の「Twilio からのバリデーションリクエスト」をご覧ください。

例:0FqS203W44/lM2UEM+51hRzwat4=
X-Twilio-RequestSid この特定のパートナーリクエストのユニークな識別子です。課金とデバッグに使用します。

例:MR000009775bb6d43d1cabc4955723fae1
X-Twilio-AddOnSid The unique identifier for the Add-on being invoked.

Use this to identify which of your Add-ons is generating this request.
ex. XBc6dc06ce91d566fae284bc2bf36218a4
X-Twilio-AddOnVersionSid The unique identifier of the Add-on version being used by the developer.

Use it to identify if the developer is using an older version of your Add-on.
ex. XC2ad3d7d6478a2ca72f224d817a241586
X-Twilio-AddOnInstallSid The unique identifier for a developers install of an Add-on.

Use this to distinguish between developers using this particular Add-on.
ex. XDe2767c53b3d7be099a825252c6cf4e59
X-Twilio-AddOnConfigurationSid The unique identifier for an instance of the installed Add-on.
ex. XEbee2b4cf26384f0b88ad98a25530c338

リクエスト検証スキーマ

望むならば、TwilioはAdd-onのAPI呼び出しに先だって、リクエスト検証JSONスキーマを使用しAdd-onのリクエストを検証することができます。 これは通常、サービスがあるリクエストをまっとうできず、顧客体験の低下を防いだり、システムへの負荷を制限したい場合に有用です。

Add-onのリクエストが検証に失敗した場合、Twilioはエラー61003: 「Add-on呼び出しの要件を満たしていません」をユーザーに返し、あなたの提供するサービスのSLAに対して悪影響を及ぼすこともありません。

リクエスト検証スキーマは、上記のテンプレート・フィールドを含むJSONディクショナリーに対して適用されます。

JSONスキーマのツール

スキーマ例

Add-onに特定の数字で始まる電話番号を制限するのに使用できます。 この例では+91または+1で始まる電話番号のみに制限するよう、ベンダーAdd-onに制限させます。

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "primary_address": {
      "type": "string",
      "pattern": "^\\+(91|1)+[0-9]*$"
    }
  },
  "required": [
    "primary_address"
  ]
}

入力JSONのフィールドを下記のようにスキーマ・バリデーターを設定し、さまざまなスキーマをテストしてください: {"primary_address" : "+12345678901"}|

パートナーAPI要件 - 応答

成功レスポンスとエラーレスポンスはどちらも、標準の JSON オブジェクトフォーマットで返す必要があります。サーバーは、すべてのリクエストに対して、たとえそれがエラーリクエストであっても、2xx レスポンスを返す必要があります。これは、設定の誤りなどの理由により正当に拒否されるリクエストと、SLA に影響を及ぼす可能性があるパートナーエラーを、明確に区別するためです。同期アドオンリクエストが成功した場合は、content-type が application/jason で、ボディーに JSON オブジェクトが格納されている 200 OK レスポンスを返します。非同期アドオンリクエストが成功した場合は、ボディーのない 202 Accepted レスポンスを返します。同期と非同期のどちらのエラーケースも、content-type が application/json で、エラー条件を示す JSON オブジェクトが格納されている 200 OK を返します。

4xx または 5xx のエラーを返した場合、これらはパートナーの設定の誤りまたは機能停止状態とみなされて、エラーレポートシステムに記録され、さらにパートナーの SLA に不利に作用します。Twilio は、4xx エラーを受け取った場合、ただちに失敗リクエストとして処理します。5xx エラーを受け取った場合、最大 N 回または TTL が経過するまで、再試行します。パートナーは、再試行を想定して、request_sid を冪等(繰り返し使用可能)なトークンとして使用する必要があります。

非同期リクエストの場合、非同期タスクの完了後に、パートナーは JSON オブジェクトボディーを Twilio に POST で返します。この JSON ボディーのフォーマットは、成功と失敗のどちらの場合も、上記のフォーマットと同じです。

応答検証スキーマ

指定があった場合、応答検証スキーマは応答に対して有効とみなされる最低限の特定フィールドが含まれることを確実にしてから、ユーザーに対して請求を行います。

To build a Response Validation Schema: 1. Paste your API response into the JSON schema generator : http://jsonschema.net/ (paste in JSON form field) 2. Delete all the fields from the result that are not required 3. Test Schema generated using the schema validator : http://www.jsonschemavalidator.net/ (Paste generated Schema from Code View and the full response from your API and ensure it validates)

スキーマ例

たとえば、下記のAdd-on APIからの応答をが常に args.e164 パラメーターが含まれることを有効とみなすように検証したい場合。

API応答の例

{
  "args": {
    "e164": "+13233633791",
    "test": "1"
  },
  "origin": "184.73.170.150",
}

JSONスキーマ

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "args": {
      "type": "object",
      "properties": {
        "e164": {
          "type": "string"
        }
      },
      "required": [
        "e164"
      ]
    }
  },
  "required": [
    "args"
  ]
}

応答クリーニング

応答クリーニングJSONパスを使用して、応答から特定の要素を削除するようTwilioに指示します。これには通常、APIキーが(返される場合)、使用状況カウンター、ベンダー固有のリソースURIなどが含まれます。

JSONパスを削除するのに、ひとつ以上のJSON要素を指定できます

個別のアドオンタイプの要件

電話番号アドオン

電話番号ルックアップアドオンは、e164 電話番号をクエリーパラメーターとして使用するサードパーティーデータパートナーを公開するために使用します。そのような例として、キャリアディップ、CNAM 発信者 ID ルックアップ、GPS ルックアップ、該当層データベースクエリーなどがあります。

アドオンリクエストのフィールド

呼び出し時に、Twilio から次のフィールドをパートナー API に渡すことができます。

テンプレート・フィールド 対応インテグレーション・ポイント 説明
{{primary_address}} 受信SMS、着信通話、Lookup 調べる電話番号(e164 フォーマット)。 +<country code><phone number>
{{secondary_address}} 受信SMS、着信通話 To 番号(e164 フォーマット) +<country code><phone number>

これは同期リクエストです。有効なレスポンスボディーを格納した 200 OK を返す必要があります。

アドオンの SLA

このリクエストへの応答は、ルックアップ API リクエストの一部として、または通話または SMS セットアップのフローで、同期的に行われるので、パフォーマンスが重要になります。これを公開するサービスは、平均約 200ms で応答し、その 99% は 1500ms 未満である必要があります。リクエストへの応答時間が 2000ms を超えると、Twilio は失敗と判断してエラーペイロードを送信し、開発者は課金されません。

アドオンレスポンスのサイズ制限

同期的なアドオンなので、これに対するレスポンスは最大 50KB に制限されます。レスポンスのサイズがこの最大値を超えると、Twilio は失敗と判断してエラーペイロードを送信し、開発者は課金されません。

メッセージ分析アドオン

メッセージ分析アドオンは、コンテンツを分析するサードパーティーにメッセージの本文を渡します。例として、翻訳や意図分析が考えられます。

アドオンリクエストのフィールド

呼び出し時に、Twilio から次のフィールドをパートナー API に渡すことができます。

テンプレート・フィールド 対応インテグレーション・ポイント 説明
{{primary_address}} 着信SMS 調べる電話番号(e164 フォーマット)。 +<country code><phone number>
{{secondary_address}} 着信SMS To 番号(e164 フォーマット) +<country code><phone number>
{{body}} 着信SMS SMSメッセージ中のUTF-8エンコーディングされた本文

これは同期リクエストです。有効なレスポンスボディーを格納した 200 OK を返す必要があります。

アドオンの SLA

このリクエストへの応答は、SMS 配信フローで同期的に行われるので、パフォーマンスが重要になります。これを公開するサービスは、平均約 200ms で応答し、その 99% は 1500ms 未満である必要があります。リクエストへの応答時間が 2000ms を超えると、Twilio は失敗と判断してエラーペイロードを送信し、開発者は課金されません。

アドオンレスポンスのサイズ制限

同期的なアドオンなので、これに対するレスポンスは最大 64KB に制限されます。レスポンスのサイズがこの最大値を超えると、Twilio は失敗と判断してエラーペイロードを送信し、開発者は課金されません。

録音分析アドオン

録音分析アドオンタイプは、音声を分析して、結果を構造化データとして返すことができるサードパーティーパートナーを公開するために使用します。この例として、音声トランスクリプション、センチメント分析サービス、音声インデックス化サービスなどがあります。

アドオンリクエストのフィールド

呼び出し時に、Twilio から次のフィールドをパートナー API に渡すことができます。

AudioData

The audio data binary bytestream is available in the following two formats:

  1. HTTP request body (POST/PUT)
  2. HTTP multipart request (POST/PUT) as a part with a name you specify

Template Fields

テンプレート・フィールド 対応インテグレーション・ポイント 説明
{{callback_url}} 録音 分析結果を返すために 1 回だけ使用する URL
{{channels}} 録音 音声ファイルのチャンネル数
{{duration}} 録音 Duration of the audio in milliseconds
{{format}} 録音 Audio Mimetype. Default recording format is audio/x-wav
{{media_sid}} 録音 レコーディングSID
{{size}} 録音 音声ファイルのサイズ(バイト)

This request is asynchronous. A 202 or 204 response with no body is expected upon receiving this request. After processing the audio, partners are expected to POST the JSON results to the Callback URL within the request timeout agreed upon. After the timeout expires, the request will be considered failed, and the developer will not be billed.

Add-on Callback Authentication

To authenticate the Callback HTTP request containing the audio analysis, we ask that you use basic authentication with the Account SID and Auth Token or an API Key (https://www.twilio.com/console/dev-tools/api-keys) created from the vendor account that the Add-on belongs to.

Add-on Callback SLA

このリクエストへの応答は非同期的に行われるので、厳しい要件はありません。これを公開するサービスは、音声ファイルの長さの平均 3 倍の時間で応答し、その 99% は 5 倍未満であるようにすることを推奨します。リクエストへの応答時間が音声ファイルの長さの 10 倍の時間を超えると、Twilio は失敗と判断してエラーペイロードを送信し、開発者は課金されません。

Add-on Callback Size Limit

As an asynchronous Add-on, the response for this is limited to a maximum of 100 MB. Any response larger than this maximum will be failed by Twilio, an error payload will be sent, and the developer will not be billed.

セキュリティとプライバシーの要件

Twilio とパートナーの間の通信のセキュリティを確保することは、Twilio のセキュリティとパートナーのセキュリティの両方にとって重要です。パートナーは HTTP エンドポイントをインターネットに開放しているので、エンドポイントでパートナーが詐欺や攻撃にさらされないようにあらゆる措置を講じる必要があります。そのために、次に示すさまざまなメカニズムを用意しています。

  1. Twilio は HTTPS/TLSv1.2 のみサポートします。
  2. DDOS 攻撃への露出を軽減するために、Twilio からのリクエストが特定の IP からのみ発信されるようにセットアップできます。Twilio は、この範囲に IP を追加する前にパートナーに連絡します。このようなセットアップを希望する場合は、ご連絡ください。デフォルトの動作では、リクエストは不特定の IP から発信されます。
    1. 174.129.222.33
    2. 174.129.222.200
    3. 184.73.170.150
    4. 23.21.226.67
  3. Twilio は、パートナーの共有シークレットを使用して、すべてのリクエストに署名します。パートナーは、受信したリクエストの署名を検証して、自分の Twilio アカウントからのリクエストであることを確認することを強く推奨します。
  4. Twilio は、呼び出しのたびに、ユニークなリクエスト SID を送信します。パートナーは、リプレーアタックを阻止できるように、これを冪等(繰り返し使用可能)なトークンとして処理することを推奨します。

アドオンの付随要件

このセクションは移動されました。詳細については、付随要件を参照してください。

ヘルプが必要ですか?

誰しもが一度は考える「コーディングって難しい」。そんな時は、お問い合わせフォームから質問してください。 または、Stack Overflow でTwilioタグのついた情報から欲しいものを探してみましょう。