欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java实现调用Udesk机器人API (二)

程序员文章站 2022-07-14 22:11:36
...

作者:张振琦

以获取FAQ分类列表接口为例,介绍如何使用Java调用Udesk机器人接口API接口。先看一下获取FAQ分类列表接口的说明:

Java实现调用Udesk机器人API (二)
注:完整的接口说明请参考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+"&timestamp="+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页面的【管理设置】-【机器人管理】中获取。
Java实现调用Udesk机器人API (二)
完整的类代码如下:
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+"&timestamp="+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/

相关标签: Udesk机器人API