请求和验证方式
消息接口:https://webapi.kf5.com/kchat/message
上传文件接口:https://webapi.kf5.com/kchat/upload
请求和响应格式:Content-Type: application/json; charset=utf-8
将平台域名添加到 Headers:KF5-Domain: {yourdomain}.kf5.com
验证方式,采用 OAuth1.0
最终用于生成签名的 KEY 为:APP KEY + "&"
参与签名的参数:
oauth_consumer_key // APPID
oauth_signature_method // 目前仅支持:HMAC-SHA1
oauth_timestamp // 秒级别时间戳
oauth_nonce // 随机字符串
oauth_version // 目前仅支持:1.0
// 请求的接口URL $url = "https://webapi.kf5.com/kchat/message"; // 请求方式 $method = 'POST'; // 自定义IM来源的ID和KEY,在工单系统后台设置页面获取 $appid = '1000001'; $appkey = 'a86e77be8e51858b3599ba71ba8d6087'; // 秒级别时间戳 $timestamp = '1480591219'; // 随机字符串,相同时间戳时,nonce应该保持唯一 $nonce = 'dkj94203u'; // 所有需要参与签名的参数 $params = array( 'oauth_version' => '1.0', 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_timestamp' => $timestamp, 'oauth_nonce' => $nonce, 'oauth_consumer_key' => $appid ); // 对参数按键名升序排列 ksort($params, SORT_STRING); // 将参数连接成字符串 $params_arr = array(); foreach($params as $key => $value){ $params_arr[] = $key.'='.$value; } $params_str = implode('&', $params_arr); // 用于生成签名的字符串 $sign_str = $method.'&'.urlencode($url).'&'.urlencode($params_str); // 用于生成签名的KEY $key = urlencode($appkey).'&'; // 生成签名字符串(先进行HMAC-SHA1加密,再进行Base64加密,再进行urlencode编码) $signature = urlencode(base64_encode(hash_hmac('sha1', $sign_str, $key, true))); // 拼接成添加到请求头中的Authorization $authorization = sprintf('Authorization: OAuth oauth_consumer_key="%s",oauth_signature_method="HMAC-SHA1",oauth_timestamp="%s",oauth_nonce="%s",oauth_version="1.0",oauth_signature="%s"', $appid, $timestamp, $nonce, $signature); // 结果: // Authorization: OAuth oauth_consumer_key="1000001",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1480591219",oauth_nonce="dkj94203u",oauth_version="1.0",oauth_signature="Zc5+ptWxqpY%2FzvoGIM+8kw282cA%3D"