メニュー

Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

アドオン申請ガイド

下記のガイドはパブリッシャーオンボーディングプロセスについての情報を提供しています。

テクニカル申請フォーム

下記のセクションではテクニカル申請フォームの記入を完了するのに役立つヒントや例が含まれています。 技術要件の詳細については、Add-on API要件も通読するようにしてください。

HttpBinサンプルAdd-on:

以下に一覧されている例では、HttpBin API(httpbin.orgを参照してください)Add-on申請の概要を説明しています。 HttpBinはHTTPリクエストのデータをエコーバックする無料のサービスです。 HttpBin用のAdd-onを構築すると、Twilioがそのリクエストに送信するAdd-onのデータが返されます。 下記のHttpBinサンプルを使用して、APIにパラメーターを渡す様々な方法を理解してください。

何を行うAdd-onなのか記述する

Add-onについての簡潔な説明を提供し、何を行うAdd-onなのか弊社が理解できるようにしてください。

HttpBinはHTTPリクエストのデータを返送します。

Add-onを動作させるAPIについてのドキュメント

弊社が技術的な詳細について迅速に理解できるよう、個々のAPIについてページ番号とセクション名をできるだけ詳しく記載してください。

APIフィールドへのAdd-onテンプレートパラメータのマッピング

この質問に正確に答えることは、弊社がAPIをテストし、Marketplaceのインターフェイスと互換性があることを検証するうえでの絶対条件です。 下記は弊社のテンプレートパラメーターが貴社のAPIを呼び出す際のマッピングを定義する方法についての例です。

GET経由のクエリー文字列パラメーター

GET
https://httpbin.org/get?apikey=YOUR_API_KEY&phone_number={{primary_address}}

POST経由のJSONディクショナリー

下記の例では、hardcoded_param=STATIC_VALUEはすべてのリクエストに対してそのままの形で送信され、顧客の目に触れることはありません。

POST
https://httpbin.org/post?hardcoded_param=STATIC_VALUE
JSON Body
{
    "e164": "{{primary_address}}"
    "message": "{{body}}"
}

POST経由でのwww-form-encoded

POST
https://httpbin.org/post?hardcoded_param=STATIC_VALUE

www-form-encoded Body
key1={{primary_address}}
key2={{secondary_address}}
key3={{body}}
hardcoded_key=STATIC_VALUE

GETおよびPOST経由でのHTTPヘッダー

GET
https://httpbin.org/get?hardcoded_param=STATIC_VALUE

Headers
key1={{primary_address}}
key2={{secondary_address}}
hardcoded_key=STATIC_VALUE

GETおよびPOST経由でのベンダー定義のLookpuパラメーター

現時点では、Lookupはリクエスト時のパラメーターのみをサポートします。 Lookup Add-onを申請し、カスタムパラメーターを定義したい場合は、下記の例のように二重波型括弧("{{")でカスタムフィールド値を表してください。 APIユーザーがパラメーターを渡す方法についてはREST API:Lookupsドキュメントを参照してください。

メモ: 他サービスの機能統合にまたがるベンダー定義パラメーターはコンソール上でまもなく利用可能になります。 上記が実装された際には、ガイドもそれに応じて更新される予定です。

GET
https://httpbin.org/get?apikey=YOUR_API_KEY&phone_number={{primary_address}}&custom_param={{vendor_defined_field}}

リクエスト検証スキーマ

JSONスキーマーを定義して、APIの呼び出しに先立ってリクエストを検証します。 下記のスキーマーは電話番号が+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スキーマーを定義して、エンドユーザーに課金する前にレスポンスを検証します。 下記のスキーマーはレスポンスが常にargs.e164を含んでいるか確認します。 パラメーターです。 Add-onパブリッシャーガイドを参照してください。 これはオプションです

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

結果削除用JSONパス

レスポンスから要素を削除するためのJSONパスを定義します。 JSONPath Online Evaluatorを参照して、JSONパスをテストしてください。 また、詳細についてはAdd-onパブリッシャーガイドを参照してください。 これはオプションです

結果クリア用パス:

以下のように2つのJSONパスを定義することで、弊社のレスポンスに組み込まれてエンドユーザーに渡される前にHttpBin JSON本文からoriginおよびheaders.Cookie要素を削除しています。

$.origin
$.headers.Cookie

削除前のJSONレスポンス:

{
  "args": {
    "apikey": "YOUR_API_KEY",
    "phone_number": "{{primary_address}}"
  },
  "headers": {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate, sdch, br",
    "Accept-Language": "en-US,en;q=0.8",
    "Cache-Control": "no-cache",
    "Cookie": "_cookie=monster",
    "Host": "httpbin.org",
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
  },
  "origin": "127.0.0.1",
  "url": "https://httpbin.org/get?apikey=YOUR_API_KEY&phone_number={{primary_address}}"
}

削除後のJSONレスポンス:

{
  "args": {
    "apikey": "YOUR_API_KEY",
    "phone_number": "{{primary_address}}"
  },
  "headers": {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate, sdch, br",
    "Accept-Language": "en-US,en;q=0.8",
    "Cache-Control": "no-cache",
    "Host": "httpbin.org",
    "Postman-Token": "60abdc13-1c06-5233-b6dc-00ba98f22070",
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
  },
  "url": "https://httpbin.org/get?apikey=YOUR_API_KEY&phone_number={{primary_address}}"
}

ライブエンドポイントと認証クレデンシャル

貴社のAPIにアクセスするための、下記の認証スキーマーをサポートしています。 どのように認証情報を送信していただくかについてのガイドとして、下記サンプルをお使いください。 また、既定のHTTPヘッダーも参照していただき、弊社のHTTPリクエストで送信している内容を理解してください。

GET経由のクエリー文字列

https://httpbin.org/get?key=YOUR_API_KEY

POST経由のリクエスト本文

https://httpbin.org/post

www-form-encoded Body
username=TWILIOPROD
password=PASSWORD

GETおよびPOST経由のHTTPヘッダー(Basic、Bearer)

Basic/Bearer Auth
https://httpbin.org/get
Username: TWILIOPROD
Password: PASSWORD
OR
Bearer Token: BEARER_TOKEN

価格と課金

ご利用いただける様々な価格モデルの説明と例について、下記で取り上げています。

  1. 単一価格: 大量の使用に関わらず、顧客は均一な価格レートで請求されます
    • 例: ¥0.8/単位
  2. 段階的価格: 一定の使用量に達した顧客には、段階的な割引を提供します
    • 例: 0 - 100,000: ¥0.75; 100,001 - 1,000,000: ¥0.7; 1,000,000+: ¥0.65
    • 使用量のカウントは月極でリセットされます
  3. 確約価格: 月々の使用量の確約の見返りとして、顧客に特別な割引を提供します
    • 確約使用量の設定
    • 確約のしきい値を上回った顧客への超過料金を設定します
    • 例: 100,000リクエストの確約に対して¥50,000、超過料金: ¥0.55/リクエスト
    • 確約価格は月極めでリセットされ、翌月には繰り越されません

マーケティングおよびサポート送信フォーム

マーケティングおよびサポート送信フォームに関するヒント

ヘッダー

タイトル、提供者名、パートナーWebサイトとランディングページ、ロゴ、およびキャッチフレーズがAdd-on詳細ページおよびカタログに表示されます。

ヘッダー

Add-onの詳細説明とハイライト

詳細説明は下記のスクリーンショットのようにAdd-on一覧に表示されます。 この項目は構造的に有効なHTMLに変換されるプレインテキスト形式の文法であるマークダウンが使用可能です。 マークダウンとそのしよう方法については、こちらをごらんください: https://daringfireball.net/projects/markdown/

最大4つまでのハイライトを一覧できます。 各ハイライトはタイトルと説明文が必要です。

概要

レスポンス例

最大3つまでのサンプルレスポンスを一覧可能です。 各サンプルレスポンスはタイトル、説明文、およびコードスニペットが必要です。

スニペット

ドキュメント

長い説明文同様、ドキュメント項目はマークダウンが使用可能です。 ドキュメントが弊社の標準形式に準拠させるため、このテンプレートを使用してください。

ドキュメント

サポート

サポートプロセスのリクエストについての説明はマークダウンが利用可能で、サポート手順についての説明に利用可能な自由記入欄です。 顧客サポートメールアドレスおよび顧客サポート電話番号はここに直接一覧されます。

サポート

法的申請フォーム

ポリシー

使用条件の項目はマークダウンが利用可能です。 プライバシーポリシーの項目は貴社サイトのプライバシーポリシーにリンクされていることが必要です。

ポリシー

Rate this page:

ヘルプが必要ですか?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.