1:获取SessionKey
1)什么是SessionKey?
sessionKey是开心网用户登录会话的标识代码,用户登录开心网后会产生一个SessionKey。通过SessionKey,我们可以知道当前登录用户的信息,然后调用Rest接口。
2)如何获取SessionKey
用户在开心网平台方位第三方组件的时候,首先会访问第三方组件首页URL(申请组件时填写的地址)。开心网平台会用GET方式把当前用户SessionKey传递给第三方组件首页URL。
需要注意的是:只有用户做开心网平台访问第三方组件首页时才会传递SessionKey,如果用户停留在第三方组件某个页面时间过长,开发者在首页拿到SessionKey后,需自己临时保存SessionKey,以保证在组件的的其他页面也能获得SessionKey。
3)验证SessionKey
以获取的SessionKey可以通过以下方式验证是否为开心网发出的(此验证非必需);将获取的SessionKey和组件secret_key用下划线链接,进行MD5加密,验证生产的字符串与获取的SIGN参数是否一致。
参考代码:
$secret="XXXXXXXXXXXXX";
$localsig=md5($_GET['session_key'].'_'.$secret);
if($localsig==$_GET['sig']){
正确
}
2.如何使用REST接口。
1)关于Rest接口
目前REST接口从用户使用方式上可分为两种类型:-交互式接口;二直接请求式接口。交互式接口的特点:使用交互式接口会在页面中弹出交互界面。这些界面都是开心网REST接口提供的。样式功能相对直接请求式接口的特点:开发者向接口发送一定格式的请求数据,然后接口返回结果。调用REST接口都需要使用调用参数和验证字符串SIG,具体参数需要参考者每个接口的使用说明。
验证字符串sig生成方式:
将所有参数进行排序,排序为字母顺序;
将排序好的参数拼接成字符串例如:k1=v1,k2=v2,k3=v3 拼接得到的字符串为 k1=v1k2=v2k3=v3在上述转换后的串末尾追加上组件的secret_k用MD5算出上述串的MD5值,结果即为sig。代码实现
ksort($param);
$request_str = '';
foreach ($param as $key => $value)
{
$request_str .= $key . '=' . $value;
}
$sig = $request_str . $this->secret;
$sig = md5($sig);
示例代码中KxPlatform_Api::buildQuery方法封装了获得sig的过程,并将sig加入到提交参数中。
2) 调用REST接口
交互式接口:
a.首先要把调用参数和验证字符串通过base64加密得到加密后的加密调用字符串。
参考示例代码中的
$query = $kxplatform_api->buildQuery($param);
$query = KxPlatform_Utils::url_base64_encode($query);
b.页面前端使用JavaScript请求接口
参考示例代码
//para 为上步得到的加密调用字符串
function showKxDialog(para)
{
var t = document.createElement("div");
t.innerHTML = '<iframe src="http://www.kaixin001.com/rest/rest.php?para='+para+'" scrolling="yes" height="0px" width="0px" style="display:none"></iframe>';
document.body.appendChild(t.firstChild);
}
注意:必需用GET方式传递para参数,否者返回结果显示1011错误。
直接请求式接口:
a.获得调用参数和验证字符串
参考示例代码中的
$query = $kxplatform_api->buildQuery($param);
b.将上步中的参数POST提交给接口
参考示例代码中的
$result = KxPlatform_WebRequest::postRequest($kxplatform_config['actionsurl'], $query);
c.得到接口返回结果$result
注意:目前返回结果只支持JSON格式。
3.关于回调地址:
有些接口,做用户操作后,会将结果通知第三方组件。第三方组件需要提供一个回调地址来接受接口的回调参数。回调参数用GET凡是传递给回调地址。回调参数中的sig参数用来验证这次回调是否由开心网发来的。验证sig的方法擦门口示例代码.
$queryStr = $_SERVER['QUERY_STRING'];
$checkSign = $kxplatform_api->checkSignFromQuery($queryStr);
注意:回调地址中的sig和调用接口参数中的sig意义不同,没有任何联系
分享到:
相关推荐
sns 数据结构 新闻系统数据结构 微博数据结构等多种数据结构
SNS中的文本数据挖掘.pdf
SNS2124&SNS2224&SNS2248&SNS3096&SNS5192&SNS5384产品文档
关于SNS游戏服务器、程序设计相关的架构设计,代码设计
SNS游戏保卫羊村FLASH源代码 值得一看
sns-login sns-loginsns-loginsns-login sns-login sns-login
非常详细的sns类网站的数据库设计说明书,是新手学习sns网站架构的一个数据设计实例
对SNS下游戏行业的发展看法 简单描述我对SNS的看法和提出相关意见
作为一款大型高并发高负载的开源SNS软件,iwebSNS功能强大,易于扩展,具有良好的伸缩性和稳定性。 它基于iweb SuperInteraction(简称iweb SI)框架开发。借助iwebSI平台,站点可以轻松获得支持热插拔及快速增加新...
主要内容: 一SNS的定义及现状 二SNS网站用户分析 三SNS网站功能介绍 四赢利模式及前景
SNS系列光纤交换机部署与管理培训,华为OEM博科光交培训文档。
flash/as3 3D SNS社交游戏源码 实现了A*寻路 深沉排序 光照系统等多套使用的技术 真正的3D版SNS社交游戏源码
项目框架sns-dao :数据接口层sns-hdfs :HDFS服务层sns-parser :页面解析层sns-core :系统sns-core层sns-web :API接口服务层备注:框架持续更新中。API文档备注: API文档统一放在公司的wiki上。项目架构解析器...
focus sns jsp 开源sns框架代码 connect-web.rar
iwebSNS是一款功能强大且易于扩展的LAMP开源社交网络平台。 它基于iweb SuperInteraction(简称iweb SI)框架开发。借助iwebSI平台,站点可以轻松获得支持热插拔及快速增加新节点的集群计算与处理能力(分布式计算与...
sns社交网站论文 有详细的配置sns社交网站论文 有详细的配置sns社交网站论文 有详细的配置
完整的SNS网站。 使用C#MVC进行开发。
OceanStor SNS2124&SNS2224&SNS2248&SNS3096&SNS5192&SNS5384 光纤交换机 V100R002C20 产品文档 08.zip 资源案例说明,配置说明等,非常详细
2008年国内互联网界给我感受最深的是:忽如一夜春雨,SNS网站纷纷涌了出来,前有校内,占座,中有海内、开心、一起、蚂蚁、豆瓣,后有5G,TW,国内SNS领域进入群雄割据阶段。
探讨如何运营SNS探讨如何运营SNS探讨如何运营SNS探讨如何运营SNS探讨如何运营SNS探讨如何运营SNS探讨如何运营SNS探讨如何运营SNS