(客服云)iOS访客端获取机器人欢迎语

注意:
1、此文档只支持获取单机器人的欢迎语,多机器人会获取第一个机器人的欢迎语。
2、此文档暂不支持获取图文消息类型的机器人欢迎语。
老版机器人与新版机器人集成方法不同,集成前需区分好。
机器人欢迎语1.png

机器人欢迎语2.png


一、先到客服系统配置机器人欢迎语
1、老版机器人设置方案:
管理员模式--智能机器人--机器人设置--自动回复--欢迎语,开启开关并添加欢迎语
机器人欢迎语3.png

2、新版(企业版)机器人设置方案:
(1)管理员模式--智能机器人--机器人设置--基础设置,点击“机器人管理”跳转到机器人管理页面
(2)机器人设置--自动回复--欢迎语,开启开关并添加欢迎语
机器人欢迎语4.png

 
二、iOS端获取、解析机器人欢迎语
在HDMessageViewController.m类的 -(void)viewDidLoad 方法最后调用robotWelcome或者newRobotWelcome 方法即可。

//获取老版机器人欢迎语
- (void)robotWelcome
{
    // kDefaultTenantId:租户id
    // kDefaultCustomerName:IM服务号 stringWithFormat:@"https://kefu.easemob.com/v1/Te ... ot%3B, kDefaultTenantId];
    NSString *newStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSURL *url = [NSURL URLWithString:newStr];
    NSURLRequest *requst = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:10];
    //异步链接(形式1,较少用)
    [NSURLConnection sendAsynchronousRequest:requst queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
        
        // 解析
        NSString *result  =[[ NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
        //同样的可以替换字符
        NSLog(@"result-----%@", result);
        NSString *str = [result stringByReplacingOccurrencesOfString:@""" withString:@"\""];
        NSString *str1 = [str stringByReplacingOccurrencesOfString:@"\"{" withString:@"{"];
        NSString *str2 = [str1 stringByReplacingOccurrencesOfString:@"}\"" withString:@"}"];
        // JSON字符串转字典
        NSDictionary *dic = [self dictionaryWithJsonString:str2];
        // 取消息的ext
        NSLog(@"dic---%@",dic);
        
        NSString *robotText = nil;
        NSDictionary *dicExt = [NSDictionary dictionary];
        if ([[dic objectForKey:@"greetingText"] isKindOfClass:[NSString class]]) {
           
            robotText = [dic objectForKey:@"greetingText"];
        } else {
             dicExt = [[dic objectForKey:@"greetingText"] objectForKey:@"ext"];
        }
        
                //构建消息
                EMTextMessageBody *bdy = [[EMTextMessageBody alloc] initWithText:robotText];
                NSString *from = [[HDClient sharedClient] currentUsername];

                    HDMessage *message = [[HDMessage alloc] initWithConversationID:kDefaultCustomerName from:from to:kDefaultCustomerName body:bdy];
                   message.ext = dicExt;
                    message.direction = 1;                
               message.status = HDMessageStatusSuccessed;
                // 消息添加到UI
                [self addMessageToDataSource:message progress:nil];
                // 消息插入到会话
                HDError *pError;
                [self.conversation addMessage:message error:&pError];
        
    }];
    
}

//获取新版(企业版)机器人欢迎语
- (void)newRobotWelcome
{
    [[HDClient sharedClient] accessToken];
    // 以下信息换成自己的
    // kDefaultTenantId:租户id
    // kDefaultOrgName:appkey中#的前半部分
    // kDefaultAppName:appkey中#的后半部分
    // kDefaultCustomerName:IM服务号
    NSString *imToken = [HDClient sharedClient].accessToken;
    NSString *urlStr = [NSString stringWithFormat:@"https://kefu.easemob.com/v1/we ... ot%3B,kDefaultTenantId, kDefaultOrgName, kDefaultAppName, kDefaultCustomerName, imToken];
    NSString *newStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSLog(@"newStr---%@", newStr);
    NSURL *url = [NSURL URLWithString:newStr];
    NSURLRequest *requst = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:10];
    //异步链接(形式1,较少用)
    [NSURLConnection sendAsynchronousRequest:requst queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
        // 解析
        NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
        //同样的可以替换字符
        NSString *str = [result stringByReplacingOccurrencesOfString:@""" withString:@"\""];
        NSString *str1 = [str stringByReplacingOccurrencesOfString:@"\"{" withString:@"{"];
        NSString *str2 = [str1 stringByReplacingOccurrencesOfString:@"}\"" withString:@"}"];
        // JSON字符串转字典
        NSDictionary *dic = [self dictionaryWithJsonString:str2];
        // 取消息的ext
        NSString *robotText = nil;
        NSDictionary *dicExt = [NSDictionary dictionary];
        if ([[[dic objectForKey:@"entity"] objectForKey:@"greetingText"] isKindOfClass:[NSString class]]) {
            robotText = [[dic objectForKey:@"entity"] objectForKey:@"greetingText"];
        } else {
            dicExt = [[[dic objectForKey:@"entity"] objectForKey:@"greetingText"] objectForKey:@"ext"];
        }  
        //构建消息
        NSLog(@"dicExt---%@",dicExt);
        EMTextMessageBody *bdy = [[EMTextMessageBody alloc] initWithText:robotText];
        NSString *from = [[HDClient sharedClient] currentUsername];
        
        HDMessage *message = [[HDMessage alloc] initWithConversationID:kDefaultCustomerName from:from to:kDefaultCustomerName body:bdy];
        message.ext = dicExt;
        message.direction = 1;
        message.status = HDMessageStatusSuccessed;
        // 消息添加到UI
        [self addMessageToDataSource:message progress:nil];
        // 消息插入到会话
        HDError *pError;
        [self.conversation addMessage:message error:&pError];
    }];    
}

// JSON字符串转化为字典
- (NSDictionary *)dictionaryWithJsonString:(NSString *)jsonString
{
    if (jsonString == nil) {
        return nil;
    }
    NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
    NSError *err;
    NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData
                                                        options:NSJSONReadingMutableContainers
                                                          error:&err];
    if(err)
    {
        NSLog(@"json解析失败:%@",err);
        return nil;
    }
return dic;
}
 

0 个评论

要回复文章请先登录注册

知识价值的认可,源自您的赞赏

扫描二维码,你的支付将由imGeek代收后转给对方

×