php oauth api,PHP实现人人OAuth登录和API调用
require_once?"HttpClient.class.php";
$APIKey?=?'dd3ffbf2bd894ca9819f5dbc82c2f39c';
$SecretKey?=?'f6d6d1308e314737ac955ba24a5aecc0';
$scope?='publish_feed,photo_upload';
// 生成API簽名sig,sig人人API的一個(gè)參數(shù)
function?gensig($params,$secret_key){
ksort($params);
reset($params);
$str?=?"";
foreach($params?as?$key=>$value){
$str?.=?"$key=$value";
}
return?md5($str.$secret_key);;
}
// 頁面狀態(tài)設(shè)置,用于頁面路由
// 默認(rèn)是‘1’
// 獲得request token (code) 后是 ‘2’
// 獲得access token 后是 ‘magic’ 的值
$state?=?'1';
if(isset($_REQUEST['code'])){
if(empty($_SESSION['atoken']))
$state?=?'2';
}
if(isset($_REQUEST['magic'])){
$state?=?$_REQUEST['magic'];
}
// 根據(jù)state生成響應(yīng)的頁面
switch($state){
case?'1':?// 給出進(jìn)入“登錄驗(yàn)證和應(yīng)用許可”頁面的連接
$_SESSION['atoken'] =?'';
"&response_type=code&scope=$scope&redirect_uri=$redirecturi";
echo?"使用人人帳號(hào)登錄
";
break;
case?'2':?// 獲取 access token,給出api調(diào)用的連接
// 獲取 request token,即code
$code?=?$_REQUEST['code'];
// 發(fā)起獲取 access token請(qǐng)求
"&grant_type=authorization_code&client_secret=$SecretKey&redirect_uri=$redirecturi";
$json?= HttpClient::quickGet($url);
// 解析返回 json
$jsond?= json_decode($json);
$access_token?=?$jsond->access_token;
// 生成頁面
if(!empty($access_token)){
$_SESSION['atoken'] =?$access_token;
$url?=?$redirecturi."?magic=3";
echo?"access token: $access_token
";
echo?"調(diào)用API: users.getInfo";
}else{
echo?"Wrong!
";
}
break;
case?'3':?// 調(diào)用 api user.getInfo,顯示用戶的姓名、uid和頭像
// 發(fā)起API調(diào)用請(qǐng)求
$access_token?=?$_SESSION['atoken'];
$params?=?array("method"=>"users.getInfo","v"=>"1.0",
"access_token"=>$access_token,"format"=>"json");
$params['sig'] = gensig($params,$SecretKey);
$json?= HttpClient::quickPost($url,$params);
// 解析返回json
$jsond?= json_decode($json);
$uid?=?$jsond['0']->uid;
$tinyurl?=?$jsond['0']->tinyurl;
$name?=?$jsond['0']->name;
// 生成頁面
echo?"你好$name, 你的UID是$uid
";
echo?"";
break;
default:
break;
}
?>
總結(jié)
以上是生活随笔為你收集整理的php oauth api,PHP实现人人OAuth登录和API调用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab调用q外部exe文件,Mat
- 下一篇: gmr 通信 matlab,matlab