Java实现调用Udesk机器人API (二)
程序员文章站
2022-07-14 22:11:36
...
作者:张振琦
以获取FAQ分类列表接口为例,介绍如何使用Java调用Udesk机器人接口API接口。先看一下获取FAQ分类列表接口的说明:
注:完整的接口说明请参考Udesk官网开发者中心:https://www.udesk.cn/doc/
简单分析一下这个接口,接口相对地址是/v1/categories,请求方式是GET,一个必传参数robotId。
前篇已经提到了,签名需要使用到的api_token,需要到系统去查询得到,我们直接来实现获取签名,并拼接固定URL参数。需要用到超级管理员邮箱和api_token。
private String getCommonArgs()
{
this.timestamp = new Date().getTime()/1000+"";
String orgin = this.email+"&"+this.apitoken+"&"+this.timestamp;
this.sign = SHA1.shaEncode(orgin);
return "email="+this.email+"×tamp="+this.timestamp+"&sign="+this.sign;
}
根据API的描述,实现如下方法,传入robotId,在url后面添加robotId和固定请求参数(签名等)。
private String getCategories(int robotId)
{
String option = "robotId="+robotId+"&";
String url = this.rooturl+"/v1/categories"+"?"+option+getCommonArgs();
System.out.println(url);
String result = "";
try {
result = HttpsUtil.doGet(url);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
robotId可以在KM页面的【管理设置】-【机器人管理】中获取。
完整的类代码如下:
FAQ.java
package com.udesk.support.demo;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.Date;
import java.util.UUID;
import com.google.gson.Gson;
import com.udesk.support.common.HttpsUtil;
import com.udesk.support.common.SHA1;
public class FAQ {
private String rooturl;
private String email;
private String apitoken;
private String timestamp;
private String sign;
public FAQ(String rooturl,String email,String apitoken)
{
this.rooturl = rooturl;
this.email = email;
this.apitoken = apitoken;
}
private String getCommonArgs()
{
this.timestamp = new Date().getTime()/1000+"";
String orgin = this.email+"&"+this.apitoken+"&"+this.timestamp;
this.sign = SHA1.shaEncode(orgin);
return "email="+this.email+"×tamp="+this.timestamp+"&sign="+this.sign;
}
//获取FAQ分类列表
//GET /v1/categories
private String getCategories(int robotId)
{
String option = "robotId="+robotId+"&";
String url = this.rooturl+"/v1/categories"+"?"+option+getCommonArgs();
System.out.println(url);
String result = "";
try {
result = HttpsUtil.doGet(url);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
public static void main(String[] args) throws IOException {
FAQ demo = new FAQ("https://km.udesk.cn/api", "你的超管邮箱", "你的api_token");
String result = "";
result = demo.getCategories(你的robotId);
System.out.println(result);
}
}
代码使用到的HttpsUtil,请参考《Java实现调用Udesk API v2(二)》:https://blog.csdn.net/zczhangzhenqi/article/details/108752898
代码使用到的SHA1 ,请参考《Udesk工单SDK(二):Java实现签名认证算法》:https://blog.csdn.net/zczhangzhenqi/article/details/108737262
Udesk提供的机器人API还有很多功能,大家可以查看官网API进行练习使用。Udsk官网机器人API:https://www.udesk.cn/doc/robot/intro/
上一篇: 数据压缩实验报告3 LZW编解码