codecamp

API 格式和签名机制

API 格式

第三方应用在请求喧喧数据时所调用的 API 的请求地址格式为:

/api.php?m=$moduleName&f=$methodName$params&code=$code&token=$token

以上请求地址格式中的变量定义如下:

  • $moduleName  :要调用的 API 所属模块名称,必须提供;

  • $methodName  :要调用的 API 所属模块内的方法名称,如果缺省则为 index  ;

  • $params  :要调用的 API 方法参数,如果没有参数可以留空,如果所调用的 API 方法有参数则将参数名和参数值通过通用网址查询字符串的形式插入到 $params  所在位置,例如 gid=XXX  ;

  • $code  :应用代号,必须提供;

  • $token  :调用 API 时的数字签名。

例如获取讨论组 gid 为 64da14c3-c07a-45af-9c61-4e638de4af26  中的用户数据请求地址为:

/api.php?m=chat&f=getChatUsers&code=myAppCode&token=f5633c34c0c551a16c1d63bceb38d6a8

签名算法

API 请求地址中的数字签名 $token  应该在每次调用时根据应用集成密匙生成,具体算法为:

$token = md5(md5($query) + $key)

以上公式包含的变量定义如下:

  • $query  :请求地址中查询字符串(?  之后的部分)不包含 &token=$token  的部分;

  • $key  :应用密匙。

例如:

// 查询参数
var $query = 'm=chat&f=getChatUsers&code=myAppCode';
// 应用密匙
var $key   = '3cd0914d656e90ab181f1d52ff352cfe';
// 计算签名字符串
var $token = md5(md5('m=chat&f=getChatUsers&code=myAppCode') + '3cd0914d656e90ab181f1d52ff352cfe');
// 这样 $token 的计算值为 'f5633c34c0c551a16c1d63bceb38d6a8'




设置应用集成
API 定义
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }