メッセージインターフェースを介したWeChat連携方法

一、概要

WeChat開発者管理画面で他の開発者のURLとTokenをバインドする際、Udeskサービスを同時に利用したい場合は、サーバーを介してUdeskメッセージインターフェースと連携することで実現できます。

Udeskメッセージインターフェースと連携するサーバーを介すると、メッセージの受信と送信はすべてサーバーを経由します。(このうち、WeChat向けに特別な最適化が行われており、tokenを取得することでWeChat仕様の画像メッセージを直接生成でき、サーバーが再度WeChatにアップロードする必要はありません)

管理者はUdesk管理画面【管理センター - インスタントメッセージング - メッセージインターフェース連携】にログインします。

udesk

二、メッセージ受信チャネルの正常性テスト

インターフェース疎通テスト:

curl https://xxxx.udesk.cn/spa1/im_callback/test?number=13574221234&email=894733082@qq.com&timestamp=20151124141451&sign=07131700A29AD987F5D9F0463CE7EFC7

入力パラメータ

number=13574221234&email=894733082@qq.com&timestamp=20151124141451&sign=07131700A29AD987F5D9F0463CE7EFC7

パラメータ説明

パラメータ名 説明
number 電話番号
email メールアドレス
timestamp タイムスタンプ
sign 上記のパラメータから生成されたMD5の結果

Sign 生成方法

返却パラメータ

成功:{ "success": true }
失敗:
{
  "success": false,
  "msg": "sign検証に失敗しました"
}
パラメータ名 説明
success True/false、リクエスト成功/失敗
msg 結果説明(文字列形式)

三、メッセージ受信インターフェース

顧客からカスタマーサポートへのメッセージ送信

1、テキストメッセージの受信

メッセージ受信インターフェース

POST http://xxxx.udesk.cn/spa1/im_callback?number=13574221234&email=894733082@qq.com&timestamp=20151124141451&sign=07131700A29AD987F5D9F0463CE7EFC7

リクエストパラメータ(Request Body)例

<xml>

  <FromUserName>openid</FromUserName>

  <Number>phone number</Number>

  <Email>894733082@qq.com</Email>

  <Content>this is a test</Content>

  <CreateTime>1548348776</CreateTime>

  <MsgType>text</MsgType>

  <MsgId>1548348777</MsgId>

</xml>

パラメータ説明

パラメータ名 説明
FromUserName 送信者アカウント(OpenID)
Number 顧客の携帯電話番号または電話番号
Email 顧客のメールアドレス
Content メッセージ内容
CreateTime メッセージ作成時間 (整数型)
MsgType text
MsgId メッセージID、64ビット整数型
### 2、画像メッセージの受信

メッセージ受信インターフェース

POST http://xxxx.udesk.cn/spa1/im_callback?number=13574221234&email=894733082@qq.com&timestamp=20151124141451&sign=07131700A29AD987F5D9F0463CE7EFC7

リクエストパラメータ(Request Body)例

<xml>

 <FromUserName><![CDATA[fromUser]]></FromUserName>

 <Number>phone number</Number>

 <Email>894733082@qq.com</Email>

 <CreateTime>1348831860</CreateTime>

 <MsgType><![CDATA[image]]></MsgType>

 <PicUrl><![CDATA[this is a url]]></PicUrl>

 <MediaId><![CDATA[media_id]]></MediaId>

 <MsgId>1234567890123456</MsgId>

 </xml>

パラメータ説明

パラメータ名 説明
FromUserName 送信者アカウント(OpenID)
Number 顧客の携帯電話番号または電話番号
Email 顧客のメールアドレス
CreateTime メッセージ作成時間(整数型)
MsgType image
PicUrl 画像リンク
MediaId 画像メッセージのメディアID。マルチメディアファイルダウンロードインターフェースを呼び出してデータを取得できます。
MsgId メッセージID(64ビット整数型)

3、音声メッセージの受信

メッセージ受信インターフェース

POST http://xxxx.udesk.cn/spa1/im_callback?number=13574221234&email=894733082@qq.com&timestamp=20151124141451&sign=07131700A29AD987F5D9F0463CE7EFC7

リクエストパラメータ(Request Body)例

<xml>

 <FromUserName><![CDATA[fromUser]]></FromUserName>

 <Number>phone number</Number>

 <Email>894733082@qq.com</Email>

 <CreateTime>1357290913</CreateTime>

 <MsgType><![CDATA[voice]]></MsgType>

 <MediaId><![CDATA[media_id]]></MediaId>

 <Format><![CDATA[Format]]></Format>

 <MsgId>1234567890123456</MsgId>

</xml>

パラメータ説明

パラメータ名 説明
FromUserName 送信者アカウント(OpenID)
Number 顧客の携帯電話番号または電話番号
Email 顧客のメールアドレス
CreateTime メッセージ作成時間(整数型)
MsgType 音声の場合はvoice
MediaId 画像メッセージのメディアID。マルチメディアファイルダウンロードインターフェースを呼び出してデータを取得できます。
Format 音声フォーマット(例:amr)
MsgId メッセージID(64ビット整数型)

4、メッセージ受信時のResponse 結果

パラメータ説明

パラメータ名 説明
status カスタマーサポートの状態(queuing/chatting/offline/unknown: 待機中 / チャット中 / オフライン / 不明なエラー)
turn 待機順位(何番目に並んでいるか)
agent_name カスタマーサポート担当者名
msg string形式のメッセージ
#### サンプル
{
    "status": "chatting",
    "turn": 0,
    "agent_name": "テストサポート1",
    "msg": "テストサポート1がご対応いたします!"
}

四、メッセージプッシュ

サポート担当者が顧客に返信メッセージを送信する際、返信メッセージを設定されたアドレスにプッシュします。

プッシュアドレスの設定方法

1、テキスト形式メッセージのプッシュ

データ形式サンプル

{status: 'chatting',

         turn: 0,

         agent_name: 'Tom',

         msg: {

               touser: customer_weixin_openid,

               msgtype: ‘text’,

               text: {content: "こんにちは、サポート担当者 Tom がオンラインでご対応いたします" }

          },

        kw_on:  enabled,

        kw_on2:  enabled,

        kw_msg: '' }

パラメータ説明

パラメータ名 説明
status サポート担当者ステータス、queuing/chatting/offline/unknown( 順番待ち / チャット中 / オフライン / 不明なエラー )
turn 順番待ちの位置
agent_name サポート担当者名
msg JSON形式メッセージ
kw_on 多忙状態、キーワードが有効かどうか true/false
kw_on2 オフライン状態、キーワードが有効かどうか true/false
kw_msg キーワードマッチング返信

JSON形式msgメッセージ説明

パラメータ名 説明
touser 顧客のWeChat ID
msgtype メッセージタイプ( text/ image )
text サポート担当者名
msg テキストタイプ返信: {content: "こんにちは、サポート担当者 Tom がオンラインでご対応いたします" }

2、画像形式メッセージのプッシュ

形式サンプル

{status: 'chatting',

         turn: 0,

         agent_name: 'Tom',

         msg: {

               touser: customer_weixin_openid,

               msgtype: 'image',

               image: {media_id: 123432443 }

          },

        kw_on:  enabled,

        kw_on2:  enabled,

        kw_msg: '' }

パラメータ説明

パラメータ名 説明
status サポート担当者ステータス、queuing/chatting/offline/unknown( 順番待ち / チャット中 / オフライン / 不明なエラー )
turn 順番待ちの位置
agent_name サポート担当者名
msg JSON形式メッセージ
kw_on 多忙状態、キーワードが有効かどうか true/false
kw_on2 オフライン状態、キーワードが有効かどうか true/false
kw_msg キーワードマッチング返信
#### JSON形式msgメッセージの説明
パラメータ名 説明
-------- :------
touser 顧客のWeChat ID
msgtype メッセージタイプ image
image 画像タイプの返信: {media_id: 123432443 }

3、音声形式メッセージのプッシュ

形式例

{status: 'chatting',

         turn: 0,

         agent_name: 'Tom',

         msg: {

               touser: customer_weixin_openid,

               msgtype: 'voice',

               voice: {media_id: 123432443 }

          },

        kw_on:  enabled,

        kw_on2:  enabled,

        kw_msg: '' }

パラメータ説明

パラメータ名 説明
status カスタマーサポートの状態、queuing/chatting/offline/unknown( 待機中 / チャット中 / オフライン / 不明なエラー )
turn 待機順位
agent_name カスタマーサポート担当者名
msg JSON形式メッセージ
kw_on 繁忙状態、キーワードが有効かどうか true/false
kw_on2 オフライン状態、キーワードが有効かどうか true/false
kw_msg キーワードマッチング返信

JSON形式msgメッセージの説明

パラメータ名 説明
touser 顧客のWeChat ID
msgtype メッセージタイプ voice
voice 音声タイプの返信: {media_id: 123432443 }

五、Tokenの取得

メッセージプッシュアドレスを取得するためのtoken値を取得します - 注:対応する認証方法をプッシュアドレス設定で構成する必要があります。そうでない場合、認証は無効です。

リクエストURL:

GET http://xxxxxx.com/getAccessToken?from=udesk&timestamp=12124234&sign=133d74d79aef117690f431f81d8df406

パラメータ説明

返却JSON結果:

返却形式:

{
error_code: 0,
error_msg: "SUCCESS",
data:{
token: "rg9noa9Z9AqovM1bTJX_-5VUH9PCBlkQ5u91nEHJVJcu2fN"
}
}

パラメータ説明:

パラメータ名 説明
error_code 値が0は成功、その他の値は失敗を表します。2は認証は成功したがtokenの取得に失敗したことを示します
error_msg 返却されたエラーメッセージ
data tokenを含む、つまりWeChatのaccess_token値
#### 注意事項
+ tokenの状態は貴社側で管理し、Udeskが即座に取得できるtokenが有効であることを保証してください。
+ Udeskはtokenの値を保存せず、tokenの状態も保存しません。