Udesk インスタントメッセージングの会話ルーティングでは、会話の割り当て時にサードパーティシステムのインターフェースを呼び出し、インターフェースの異なる戻り値に基づいて異なるロジックを実行することがサポートされています。
機能に関する注意事項
Udeskが本機能におけるサードパーティシステムの呼び出しの影響を受けないようにするため、サードパーティシステムの呼び出し中にエラーが発生した場合、その会話は直接会社のキューに割り当てられます! + 発生する可能性のあるエラー: - サードパーティインターフェースのタイムアウト - サードパーティインターフェースの呼び出し失敗 - サードパーティインターフェースの戻り値がドキュメントで規定された内容と一致しない
インターフェース開発仕様
サードパーティシステムがUdeskと連携する際は、以下の仕様に従ってインターフェースを開発する必要があります。
リクエスト方法
UdeskはGETメソッドを使用してサードパーティシステムのインターフェースをリクエストします。
リクエストアドレス
ユーザーが定義しますが、プロトコルはHTTPSである必要があります(つまり、インターフェースアドレスは https:// で始まる必要があります)。例: https://api.baidu.com。そうでない場合、リクエストは失敗し、会話は直接会社のキューに割り当てられます!
リクエストパラメータ説明
ユーザーが定義したリクエストアドレスを通じてGETでサードパーティシステムをリクエストする前に、Udeskはアドレスに認証関連のパラメータを追加します(認証の詳細は後述)。リクエストパラメータの構造は以下の通りです。
| パラメータ名 | 値のタイプ | パラメータ説明 | 備考 |
|---|---|---|---|
| custom_parameter_1 | Integer or String | ユーザー定義パラメータ1 | ユーザー定義パラメータは純粋な文字列または整数のみサポート |
| custom_parameter_2 | Integer or String | ユーザー定義パラメータ2 | ユーザー定義パラメータは純粋な文字列または整数のみサポート |
| custom_parameter_n | Integer or String | ユーザー定義パラメータn | ユーザーの定義パラメータに数量制限はありません |
| udesk_customer_openid | String | 微信openid | システムパラメータ |
| udesk_customer_unionid | String | 微信unionidシステムパラメータ | システムパラメータ |
| udesk_customer_web_token | String | Webチャネル顧客一意識別ID | システムパラメータ |
| udesk_customer_sdk_token | String | SDKチャネル顧客一意識別ID | システムパラメータ |
| udesk_customer_customer_token | String | システム一意識別ID(クロスチャネル) | システムパラメータ |
| sign | String | 署名 | - |
| nonce | String | 6桁のランダム文字列、署名計算用 | - |
| timestamp | Integer | Unixタイムスタンプ | - |
リクエストアドレス例:
https://test.udesk.cn/?custom_parameter_1=params1&custom_parameter_2=params2&custom_parameter_n=paramsn&udesk_customer_openid=xxx&udesk_customer_unionid=xxx&udesk_customer_web_token=xxx&udesk_customer_sdk_token=xxx&udesk_customer_customer_token=xxx&&nonce=aff6fc&sign=59C5FD430525574B41EB456FBA44D6A8F22C8D9535CD33937FA8637E841BA76D×tamp=1584931776
認証説明
Udeskの各企業には一意のopen_api_tokenがあります。まず、このトークンを取得してください(账户设置-安全设置-鉴权Tokenで取得可能です)。
tokenとパラメータ内のnonce、timestampを&で連結し、連結した文字列に対してSHA256ハッシュを実行し、最終的にハッシュ値を大文字に変換することで署名値 sign が得られます。
sign生成の例(Rubyコード)
sign_str = "#{open_api_token}&#{nonce}&#{timestamp}"
sign = Digest::SHA256.hexdigest(sign_str).upcase
戻り値の構造説明
Udeskでは、インターフェースが返すレスポンスはJSON形式である必要があります。
戻り値のネスト形式:
{
"value_1": 1,
"value_1": "value_2",
"value_n": true
}
各パラメータの説明:
| パラメータ名 | 値の型 | パラメータ説明 |
|---|---|---|
| value_1 | String または Number または Boolean などの単純値 | ユーザー定義のレスポンスパラメータ1 |
| value_2 | String または Number または Boolean などの単純値 | ユーザー定義のレスポンスパラメータ2 |
| value_n | String または Number または Boolean などの単純値 | ユーザー定義のレスポンスパラメータn |
インターフェース開発における注意事項
- リクエストパラメータにおいて、ユーザー定義のパラメータ情報の数に制限はありません。
- レスポンス値は文字列や数値などの単純な型の値のみ可能です。配列、ハッシュなどの複雑なデータ構造や、複数層のネストはサポートされていません。
- レスポンス値は、0、1、2などの単純な整数の列挙値を取ることをお勧めします。
- インターフェースの応答時間は
200ms未満である必要があります。インターフェースの時間が200msを超えた場合、リクエストはタイムアウトと見なされます。