饿了么开放平台IM(即时消息)接入场景方案对接场景
1、查询与更新店铺 IM 状态
调用 eleme.shop.im.getIMStatus 接口可以查询店铺的 IM 开关状态,可用于第三方系统中前端查询后展示对应的状态;
调用 eleme.shop.im.updateIMStatus 可以设置店铺的 IM 开启与关闭,可用与第三方系统中设置店铺 IM 状态;
2、查询长链
调用该接口前需要拿到长链 Token,这个和调用接口时公共参数中的 Token 是不一样的,不要混淆;
如果是使用 java SDK,长链 Token 可以直接用 IMTokenUtil.genToken 工具类生成,使用其他语言则可以按照如下规则生成(生成长链 Token 需要 4 个参数:Key、Secret、LocalMac(本机设备 mac 地址)、ProcessID(本机进程 ID):
对 Secret 进行 MD5 哈希;
将这 4 个参数依次用 # 进行拼接,也就是 Key#md5(Secret)#LocalMac#ProcessID;
将步骤 2 得到的字符串进行Base64编码即是 长链 Token。
然后调用 eleme.shop.im.getWssAddress 传入 token 与 routingKey,
会返回这种格式的长链地址:wss://app-api.shop.ele.me/openapi/websocket?appId=napos_openapi&token=Qk1lULw4UnhRaSNhOWI3YmQ2YTcxZjw4NmRmWkU5ZDY5ZmZlN2YxY2M2OCM5MC05Qy00QS1DRS00RS00NSMxMEY2
Example(PHP):
$key = "xxxx"; $Secret = "xxxxxxxx"; $MD5Secret = md5($Secret); $localMAC = "xxxx"; $ProcessID = "xxxx"; $Temp = $appkey."#".$MD5Secret."#".$localMAC."#".$ProcessID; $IMToken = base64_encode($Temp);