开心网的openId,怎么使用

niketwo 2010-09-09 05:13:44
最近在做一个和开心网的openid接口。但是不知道怎么调用他的东西,在此希望各位能帮帮忙
说明:
在我做的网站上面有一个开心网用户登录的按钮,登录之后进入我们网站首页,在网站首页要读取开心网用户的姓名,等信息。
各位大虾,该如何读取开心网用户的信息????
下面是开心网给的文档。但是我不明白,希望各位帮帮忙
=========================================这个是api文档==============================
api_key string 组件申请时获得的api key,在调用接口时它代表该组件的唯一身份

call_id float 当前调用请求队列号,建议使用当前系统时间的毫秒值。每一次调用接口的call_id 参数都不能一样,后一次调用的应该比前一次大。一般取毫秒数就可以了,如果要连续调用,最好自己做控制,比如每调用一次,把call_id增加0.001

sig string 由当前请求参数和组件申请时获得的secret_key连接,进行MD5加密得到的字符串,用于判断发送的请求是否合法。sig签名均应为小写字母

uids string 用户ID,用逗号隔开,最多50个

v string API的版本号,目前为1.0

session_key string 登录用户的session key。用于验证该调用请求是否为当前用户发出的
可选参数

format string Response的格式。支持JSON和XML(缺省值JSON)
JSON格式,返回例子如下:
[{"uid":100099,"name":"\u5f20\u7433\u7433","gender":1,"logo50":"http://pic1.kaixin001.com.cn/logo/10/0/50_100099_2.jpg","online":0},{"uid":100100,"name":"\u80e1\u4e00\u7f8e","gender":0,"logo50":"http://pic.kaixin001.com.cn/logo/10/1/50_100100_8.jpg","online":0}]。其中,gender的返回值0代表男,1代表女

====================================下面是实例===================================

<?php $api_key = 'xxx';
$secret = 'xxx';
$url = 'http://rest.kaixin001.com/api/rest.php';
$session_key = $_GET['session_key'];
if (empty($session_key)) {
$session_key = $_COOKIE["kx_session_key"];
} else {
setcookie("kx_session_key", $session_key, time()+3600*4);
}
$param = array( 'api_key' => $api_key, 'method' => 'users.getInfo', 'uids' => '100099,100100', 'format' => 'json', 'session_key' => $session_key, );
$query = buildQuery($param, $secret);
$result = postRequest($url, $query);
$result = json_decode($result);
function buildQuery($param, $secret) {
$param['call_id'] = microtime(true);
$param['v'] = '1.0';
ksort($param);
$request_str = '';
foreach ($param as $key => $value) {
$request_str .= $key . '=' . $value; // 没有分割符
}
$sig = $request_str . $secret;
$sig = md5($sig);
$param['sig'] = $sig;
$query = http_build_query($param); return $query;
}
function postRequest($url, $post_string) {
$useragent = 'kaixin001.com API PHP5 Client 1.1 (curl) ' . phpversion();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
if (strlen($post_string) >= 3) {
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
} curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
function url_base64_encode($str) {
$search = array ('+', '/');
$replace = array ('*', '-');
$basestr = base64_encode($str);
return str_replace( $search, $replace, $basestr );
}
这些就是一个实例,但是我看不懂。我没学过php,急着要用也没时间去学习php.那位大虾帮帮忙。
比如说我要读取用户名该怎么读取

...全文
790 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
apollo1031 2010-09-17
  • 打赏
  • 举报
回复
1.先去开心网开放平台申请一个openid的系列,按照上面的步骤和说明执行到第三步就基本可以建立起连接了。
2.需要注意的地方,用户登录必须是申请openid时所填的测试账号之一,而且测试账号的好友不能超过5个,否则不会登录成功。
3.用户登录后,会生成一个名为kx_connect_session_key的cookie,这个作为session_key是调用API的必要参数。
4.你要获取用户信息就要先调用users.getLoggedInUser方法得到登录用户的ID,再调用users.getInfo方法获取用户信息。调用API的方法文档中说得很清楚了,无非是参数按字母排序,replace掉“&”,后接secret_key,将此字符串MD5编码获得sig值,最后将这个sig值连接到原有参数的最后就行了。别忘了要Post请求。
niketwo 2010-09-09
  • 打赏
  • 举报
回复
我的帖子这么冷淡啊???怎么都没人光顾啊???
niketwo 2010-09-09
  • 打赏
  • 举报
回复
怎么没人啊?自己顶起来……

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧