信息通知推送
云客服移动SDK 通知普通用户工单被客服公开回复,或即时交谈的离线消息。
目前集成推送通知的唯一方法是使用一个回调的API,在使用该API前,您必须保证您的应用开启了远程推送服务。
在这里,你需要做三件事:
1、 在你的账号里配置您的移动SDK应用程序启动推送通知
2、 设置回调URL支持我们的回调
3、 在您的应用程序处理用户的唯一标示和推送请求

回调的API
当有消息发送时,云客服SDK将通知您设置的回调URL。之后,您的服务必须处理发送推送通知到最终用户的设备。
当我们想要发送一个通知给最终用户,我们会发送一个流请求的URI设置应用程序配置。示例请求:
<回调URL>
Content-Type: application/json
Accept: application/json{
"user":{
"user_id":123
},
"device":[{
"device_token":"1234567890",
"type":"IOS"
}],
"notification": {
"ticket_id":"123",
"type":"ticket"
}}同样,在聊天中发送离线消息中,向设置的回调URL发送的数据示例:
<回调URL>
Content-Type: application/json
Accept: application/json{
"user":{
"user_id":123
},
"device":[{
"device_token":"1234567890",
"type":"IOS"
}],
"notification": {
"message":"hello",
"type":"im"
}}他请求主体是一个JSON对象包含以下参数:
| 参数名称 | 类型 | 说明 |
|---|---|---|
| user | object | 用户的信息 |
| device | array | 设备的列表 |
| notification | object | 推送通知信息 |
user
被推送的用户信息
| 参数名称 | 类型 | 说明 |
|---|---|---|
| user_id | inter | 被推送的user_id |
devices
将要推送的设备
| 参数名称 | 类型 | 说明 |
|---|---|---|
| device_token | string | 设备的唯一标示 |
| type | string | 设备的类型 |
notification
推送的信息(推送工单消息时)
| 参数名称 | 类型 | 说明 |
|---|---|---|
| ticket_id | string | 工单编号 |
推送的信息(推送聊天离线消息时)
| 参数名称 | 类型 | 说明 |
|---|---|---|
| message | string | 聊天消息 |
通知
给您的应用程序注册通知
通过 [KFHttpTool saveTokenWithParams:@{KF5UserToken:@"",KF5DeviceToken:@""} completion:^(NSDictionary * _Nullable result, NSError * _Nullable error) {}];发送最终用户的唯一标示,即可完成推送设置。
建议:最好在用户退出登录或不需要推送的时候,通过[KFHttpTool deleteTokenWithParams:@{KF5UserToken:@"",KF5DeviceToken:@""} completion:^(NSDictionary * _Nullable result, NSError * _Nullable error) {}];将用户的唯一标示删除。
<KFHttpTool.h>/**
保存deviceToken
@param params 参数,如下:
@{
KF5UserToken:@"", // 用户唯一标示,可通过创建或登录用户获得,必填
KF5DeviceToken:@"" // 用户deviceToken,必填
};
*/+ (nullable NSURLSessionDataTask *)saveTokenWithParams:(nonnull NSDictionary *)params completion:(nullable void (^) ( NSDictionary *_Nullable result, NSError *_Nullable error))completion;/**
删除deviceToken
@param params 参数,如下:
@{
KF5UserToken:@"", // 用户唯一标示,可通过创建或登录用户获得,必填
KF5DeviceToken:@"" // 用户deviceToken,必填
};
*/+ (nullable NSURLSessionDataTask *)deleteTokenWithParams:(nonnull NSDictionary *)params completion:(nullable void (^) ( NSDictionary *_Nullable result, NSError *_Nullable error))completion;