消息推送客服

2020-02-11 18:40 更新

填寫服務(wù)配置

開發(fā)者使用賬號(hào)登錄開發(fā)者平臺(tái)后,按提示填寫相關(guān)信息,具體如下:

  • URL:開發(fā)者用來接收消息的接口 URL。開發(fā)者所填寫的 URL 默認(rèn)以 https:// 開頭,端口為 443。
  • Token:可由開發(fā)者可以任意填寫,用作生成簽名,長(zhǎng)度 3 ~ 32 個(gè)字符。
  • 選擇消息數(shù)據(jù)格式:JSON 格式(默認(rèn))或 XML 格式。


驗(yàn)證消息來自今日頭條

開發(fā)者提交信息后,今日頭條服務(wù)器將發(fā)送 GET 請(qǐng)求到填寫的服務(wù)器地址 URL 上,所攜帶的參數(shù)如下表所示:

參數(shù)描述
signature加密簽名,signature 結(jié)合了開發(fā)者填寫的 token 參數(shù)和請(qǐng)求中的 timestamp 參數(shù)、nonce 參數(shù)
timestamp時(shí)間戳
nonce隨機(jī)數(shù)
echostr隨機(jī)字符串

開發(fā)者通過校驗(yàn) signature 來判斷請(qǐng)求是否來自于今日頭條服務(wù)器。signature 生成方式為:

  1. 將開發(fā)者填寫的 token、timestamp、nonce 三個(gè)參數(shù)進(jìn)行字典序排序,并拼接(不用任何符號(hào),直接拼接)成一個(gè)字符串
  2. 將上一步得到的字符串進(jìn)行 sha1 加密開發(fā)者將獲得加密后的字符串與 signature 對(duì)比,如果相同,則可以認(rèn)為請(qǐng)求來自于今日頭條服務(wù)器,請(qǐng)?jiān)瓨臃祷?echostr 參數(shù)的內(nèi)容(內(nèi)容前后不加單引號(hào)或雙引號(hào),直接返回文本字符串),今日頭條服務(wù)器收到回復(fù)之后進(jìn)行對(duì)比,相同則保存客服配置信息并開啟消息推送客服。


接收消息

開啟消息推送之后,用戶發(fā)送的所有消息,今日頭條服務(wù)器將會(huì)通過 POST 請(qǐng)求發(fā)送到開發(fā)者配置的 URL,格式為 JSON 或者 XML,開發(fā)者將收到的消息自行驗(yàn)證解密。轉(zhuǎn)發(fā)用戶消息到開發(fā)者服務(wù)器時(shí),如果兩秒內(nèi)沒收到響應(yīng),將認(rèn)為失敗,然后 sleep 幾秒再重試,總共重試三次。每條消息都包含一個(gè) createTime 字段,當(dāng)收到多條消息是,可以根據(jù) FromUserName 和 CreateTime 兩個(gè)字段進(jìn)行重排序。

開發(fā)者服務(wù)器收到請(qǐng)求必須作出相應(yīng)的回復(fù),以便今日頭條服務(wù)器判斷消息發(fā)送情況,回復(fù)方式建議:

  1. 直接回復(fù) success 或者長(zhǎng)度為 0 的空串
  2. 其他 第一種情況,今日頭條服務(wù)端才會(huì)認(rèn)為消息發(fā)送成功,第二種情況認(rèn)為失敗并也不會(huì)重試。

文本消息

用戶在客服聊天中發(fā)送文本消息時(shí)將產(chǎn)生如下的數(shù)據(jù)包:

XML 格式

 <xml>
   <ToUserName><![CDATA[appid]]></ToUserName>
   <FromUserName><![CDATA[openid]]></FromUserName>
   <CreateTime>1577364225</CreateTime>
   <MsgType><![CDATA[text]]></MsgType>
   <Content><![CDATA[text content]]></Content>
</xml>

JSON 格式

{
  "ToUserName": "appid",
  "FromUserName": "openid",
  "CreateTime": 1577364225,
  "MsgType": "text",
  "Content": "text content"
}

參數(shù)解釋

參數(shù)說明
ToUserName小程序的 ID
FromUserName發(fā)送消息用戶的 openid
CreateTime消息創(chuàng)建時(shí)間
MsgType消息類型(text)
Content文本消息內(nèi)容

圖片消息

用戶在客服聊天中發(fā)送圖片消息時(shí)將產(chǎn)生如下的數(shù)據(jù)包: XML 格式

 <xml>
   <ToUserName><![CDATA[appid]]></ToUserName>
   <FromUserName><![CDATA[openid]]></FromUserName>
   <CreateTime>1577364225</CreateTime>
   <MsgType><![CDATA[image]]></MsgType>
   <PicUrl><![CDATA[this is image url link]]></PicUrl>
</xml>

JSON 格式

{
  "ToUserName": "appid",
  "FromUserName": "openid",
  "CreateTime": 1577364225,
  "MsgType": "image",
  "PicUrl": "this is image url link"
}

參數(shù)說明

參數(shù)說明
ToUserName小程序的 ID
FromUserName發(fā)送消息用戶的 openid
CreateTime消息創(chuàng)建時(shí)間
MsgType消息類型(image)
PicUrl圖片鏈接


發(fā)送客服消息接口

收到用戶發(fā)來的消息之后,開發(fā)者可以通過調(diào)用今日頭條提供的接口回復(fù)客服消息給用戶,當(dāng)用戶不在線時(shí),會(huì)以消息通知的形式發(fā)送到用戶

請(qǐng)求路徑

https://developer.toutiao.com/api/apps/message/custom/send?access_token={accesstoken}

請(qǐng)求方式

POST

請(qǐng)求參數(shù)

參數(shù)名類型必傳描述
access_token字符串access_token,獲取方式,以參數(shù)形式拼接 url 后面
open_id字符串用戶的 openid
msg_type字符串消息類型,文本消息為 text,圖片消息為 image
content字符串msg_type 為 text 時(shí)必傳文字消息
pic_url字符串msg_type 為 image 時(shí)必傳圖片鏈接

響應(yīng)參數(shù)

參數(shù)名類型描述
errno整型錯(cuò)誤碼
msg字符串描述信息

錯(cuò)誤碼

說明建議解決方案
0請(qǐng)求成功
-1內(nèi)部錯(cuò)誤稍后重試,還是不行反饋到今日頭條開發(fā)
-2消息限制根據(jù)提示操作
-3參數(shù)錯(cuò)誤根據(jù)提示操作
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)