require_once "HttpClient.class.php";

$APIKey = 'dd3ffbf2bd894ca9819f5dbc82c2f39c';

$SecretKey = 'f6d6d1308e314737ac955ba24a5aecc0';

$scope ='publish_feed,photo_upload';

// 生成API签名sig,sig人人API的一个参数

function gensig($params,$secret_key){

ksort($params);

reset($params);

$str = "";

foreach($params as $key=>$value){

$str .= "$key=$value";

}

return md5($str.$secret_key);;

}

// 页面状态设置,用于页面路由

// 默认是‘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'];

}

// 根据state生成响应的页面

switch($state){

case '1': // 给出进入“登录验证和应用许可”页面的连接

$_SESSION['atoken'] = '';

"&response_type=code&scope=$scope&redirect_uri=$redirecturi";

echo "使用人人帐号登录
";

break;

case '2': // 获取 access token,给出api调用的连接

// 获取 request token,即code

$code = $_REQUEST['code'];

// 发起获取 access token请求

"&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 "调用API: users.getInfo";

}else{

echo "Wrong!
";

}

break;

case '3': // 调用 api user.getInfo,显示用户的姓名、uid和头像

// 发起API调用请求

$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;

}

?>

php oauth api,PHP实现人人OAuth登录和API调用相关推荐

  1. 谷歌账号登录Google API Oauth 2.0简单申请和使用教程

    在点击编辑,修改回调URL 编辑完后可以参照google开发文档开发 https://developers.google.com/accounts/docs/OAuth2?hl=zh-CN 然后按照需 ...

  2. 基于 Oauth 2.0 的第三方账号登录实现

    基于 Oauth 2.0 的第三方账号登录实现 Oauth 2.0 原理与授权流程 1.刚开始的第三方应用接入其他账号登录过程:  存在问题: 1.用户账号.密码信息透露给了第三方应用,导致安全问题 ...

  3. OAuth模块管理客户端的用户登录鉴权功能,允许应用访问第三方平台的资源

    OAuth接口支持开发者调用当前环境中安装的三方客户端App(如微信.微博等)的授权登录页面进行鉴权操作. 若终端安装了对应的客户端App,则调用客户端的授权登录页面,否则调用WAP页面进行授权登录. ...

  4. OAUTH之 钉钉第三方授权登录

    文章目录 OAUTH之钉钉第三方授权登录 前期用到的工具 获取access_token 请求地址 请求方法 响应 扫码 / 使用账号密码 -- 获取 临时 code 参数重要说明 直接访问 扫码登录 ...

  5. 部分主流sns平台的账号登录及api操作

    新浪微博.腾讯微博.QQ.人人网.开心网.网易微博.豆瓣.百度.Google.微软.Instagram.Facebook.360.GitHub等平台的账号登录及api操作,使用oauth 2.0 官方 ...

  6. php使用qq登录api接口,QQ的账号登录及PHP api操作

    QQ的账号登录及api操作,使用oauth 2.0官方提供的sdk都太过庞大,这是我自己简化的,提供简单的账号登录.获取个人信息.发布分享等功能,如果需要其他功能可以根据官方的api文档自行添加[文件 ...

  7. php使用QQ登录API,QQ的账号登录及api操作

    QQ的账号登录及api操作,使用oauth 2.0 官方提供的sdk都太过庞大,这是我自己简化的,提供简单的账号登录.获取个人信息.发布分享等功能,如果需要其他功能可以根据官方的api文档自行添加 q ...

  8. php采集喜马拉雅,接入喜马拉雅数据 JSSDK API demo WEB版 标准登录 、免登陆

    1.引入jssdk config, XMLY, XMplayer 喜马拉雅sdk封装好的 2.初始化(授权登录.免登陆) config({ app_key: '2e*****1', // 必传,官方提 ...

  9. QQ互联聚合登录中转API程序源码

    介绍: QQ互联彩虹聚合登录中转API是一个快速登录界面,可以传输QQ,微信,支付宝,微博,百度等平台. 有多个应用程序管理,域名限制,帐户记录,登录记录.  彩虹聚合登录中转API登录传输API用于 ...

最新文章

  1. 郑冠杰:KDD Cup城市大脑赛题方法总结!
  2. 关于mybatis里面的Executor--转载
  3. 家用电脑配置_家用电脑无需太高配置,不要听电脑店瞎忽悠,2500元机子够用了!...
  4. 使用json-lib进行Java和JSON之间的转换
  5. Socket相关操作超时
  6. (Portal 开发读书笔记)PortletFileUpload
  7. 2008服务器维护,Windows 2008 R2 服务器维护
  8. Hadoop(五)HBase基础
  9. ufs3.0和12G内存哪个对流畅运行影响大?
  10. 《Cisco防火墙》一8.7 通过NAT规则定义连接限制
  11. 哪种语言更适合做自动化测试?
  12. Miccai2019 oral简单总结
  13. Tomcat配置文件server.xml(转)
  14. 设计模式网上资料整合理解——行为型模式(一)
  15. Navicat Premiumx64 使用注册机激活
  16. HAV-down1.1vs 大黄峰资源搜索 绿色特别版
  17. 联通校园网避免检测随身wifi方法
  18. R语言基础作图之点图
  19. webdriver和火狐浏览器历史版本下载
  20. 数据库的学习MySQL

热门文章

  1. CentOS中安装git
  2. zz 标 题: 求weka JVM outofMemory问题的解决方案【已解决】
  3. 从godaddy转出域名
  4. 阿里云VGN5i虚拟化GPU服务器价格更低的GPU计算服务
  5. PIE SDK影像坏线修复
  6. DKhadoop安装配置教程与常见问题解决方法
  7. 集成 jpush-react-native 常见问题汇总 ( iOS 篇)
  8. 【MM模块】 Goods Receipt 收货 1
  9. [SAP ABAP开发技术总结]动态语句、动态程序
  10. SAP ABAP MARD和MARDH计算逻辑