信息通知推送

云客服移动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对象包含以下参数:

参数名称类型说明
userobject用户的信息
devicearray设备的列表
notificationobject推送通知信息
user

被推送的用户信息

参数名称类型说明
user_idinter被推送的user_id
devices

将要推送的设备

参数名称类型说明
device_tokenstring设备的唯一标示
typestring设备的类型
notification

推送的信息(推送工单消息时)

参数名称类型说明
ticket_idstring工单编号

推送的信息(推送聊天离线消息时)

参数名称类型说明
messagestring聊天消息

通知

给您的应用程序注册通知

通过 [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;