Kayako REST API使用详解一

转载于地址: http://blog.lixiphp.com/kayako-rest-api-usage-1/

Kayako是PHP中非常流行的客服处理系统,包含工单模板、在线聊天模块、新闻模板、知识库模块、疑难解答模块以及电邮处理模块。

为什么REST API?

REST 是英文 Representational State Transfer 的缩写,是近年来迅速兴起的,一种基于 HTTP,URI,以及 XML 这些现有协议与标准的,针对网络应用的设计和开发方式。它可以降低开发的复杂度,提高系统的可伸缩性。
在 REST 中,开发人员显式地使用 HTTP 方法,对系统资源进行创建、读取、更新和删除的操作:
  • 使用 POST 方法在服务器上创建资源
  • 使用 GET 方法从服务器检索某个资源或者资源集合
  • 使用 PUT 方法对服务器的现有资源进行更新
  • 使用 DELETE 方法删除服务器的某个资源
简单的说就是提供REST的系统以资源为中心,构建并提供一系列的Web服务、数据交互作用。让资源可以被读取、添加、更新和删除。

Kayako REST API

Kayako REST API可让您快速开发应用程序连接和整合Kayako客服系统。
建立一个自定义插件时,Kayako连接到另一个应用程序或者从Kayako提取数据到其他内部系统中,REST API可让您检索,添加和修改数据在Kayako客服系统。在Kayako中几乎每一个对象(无论是工单,用户,员工等)都可以使用API来操作。
命令
动作
描述
POST
创建
创建一个项目(例如工单)
GET
读取
获取一个项目或项目列表(例如工单列表)
PUT
修改
修改一个现有的项目或项目列表(例如改变一个存在的工单的拥有者)
DELETE
删除
永久删除一个项目或一组项目(比如删除一个用户)

启用Kayako REST API

在Kayako后台启用API:
Settings -> General -> API Settings -> Enable API Interface
启用后,通过左侧菜单查看API信息:
Options -> Rest API -> API Information
Kayako
API信息中的,API URL就是作为接受URL的网址。例如:
http://yourkayakodomain.com/path-to-helpdesk/api/

Kayako REST API 验证签名

每一次请求都必须带有每个请求的API公钥和API密钥,以及随机生成的salt字符串和签名。
参数
如何得到?
信息
API key 公钥
后台管理员控制面板(REST API 信息中)。
 
Salt 随机字符串
为API的每个请求随机生成的字符串。
 
Signature 签名
为API的每个请求通过Salt 随机字符串和Secret key 密钥作为Hash散列键计算出的签名字符串。
签名是通过Salt 随机字符串和Secret key 密钥作为Hash散列键的SHA256散列方法计算得出。
Secret key 密钥
后台管理员控制面板(REST API 信息中)。
Secret key 密钥不需要出现在API请求中。它只是用作键来计算签名。
请求的URL就想这样:
https://yourkayakodomain.com/api/index.php
 ?/Module/Controller/Action
 &parameterA=valueA
 &parameterB=valueB
 &parameterC=valueC
 &apikey=95fdbc1c-0f5b-6914-05b6-5ee357a02c52
&salt=1212713324 &signature=utG63XYZi4ZKwdDVhxQQEB3yAmsw7F1lII7jMmiPlbw%3D

Kayako REST API 生成签名

提供PHP代码:
<?php

   $apiKey = "95fdbc1c-0f5b-6914-05b6-5ee357a02c52";
   $secretKey = "Mjk0OTY0M2QtOGQzYy1hNjk0LWI1OTEtMmJlNTkyOTlkMzgxNDllY2FmNTAtMDRjZS0xZGE0LThkOWQtZTBhYWRlNDFlMGEw";
   // Generates a random string of ten digits
   $salt = mt_rand();
   // Computes the signature by hashing the salt with the secret key as the key
   $signature = hash_hmac(‘sha256′, $salt, $secretKey, true);
   // base64 encode…
   $encodedSignature = base64_encode($signature);
   // urlencode…
   $encodedSignature = urlencode($encodedSignature);
   echo "Voila! A signature: " . $encodedSignature;
   echo "<br>Salt: ".$salt;
?>
转载于: http://blog.lixiphp.com/kayako-rest-api-usage-1/

你可能感兴趣的:(api,REST,Kayako)