信息通知推送
云客服移动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;