如何避免getRequestToken,getauthorize.netURL频繁调用

基于OAuth的开放平台获取用户授权码的方法
开放平台是真的火了,但在中国开放只能是更大意义的圈子,所以平台还只是平台,但对于coder来说,搞搞还是很有必要的!
很久之前,做了个独立
,整合了几大还算比较火的微博平台(新浪、腾讯、网易、搜狐、豆瓣……),感觉还不错!
最近给一客户做了个小的同步工具,再次把 OAuth 捡起来!这里记录一下,顺道分享点小心得!
首先,OAuth是个啥?传送门:!或者到各大开放平台看文档!
先分享一些个小的心得,走一走OAuth的流程!这里以一个获取用户授权码的示例来讲解,先上示例演示,结合演示看代码!
PS. 文中提到的所有代码均置于同一页面!目录配置请看代码!以获取新浪微博用户授权码为例:
先写个前端:
&a rel="nofollow" href="index.php?oauth=sina"&新浪微博&/a&
当点击“新浪微博”时,将参数oauth提交至index.php文件处理,index.php文件需要先加载通用配置文件:
include(dirname(__FILE__) . '/config.php');
include(dirname(__FILE__) . '/oauth/OAuth.php');//OAuth通用类
顺道开启 session:session_start();
接着设置一个 callback url,用于用户授权之后传回确认信息,其中就包括授权码!
if($_GET['oauth']=="sina"){
$callbackUrl = '/demo/668/index.php?callback=sina';//以示例目录为例
include_once('oauth/sina_oauth.php');
$a = new sinaOAuth( SINA_AKEY, SINA_SKEY );// 创建 sinaOAuth 对象实例
$keys = $a-&getRequestToken();
$aurl = $a-&getAuthorizeURL( $keys['oauth_token'] ,false , $callbackUrl);// $callbackUrl
$_SESSION['keys'] = $// 保存到 session 中
//print_r($_SESSION['keys']);//这里可以输出看看是啥!
header('Location:' . $aurl);//跳转至微博官网输入用户登录信息
下面就是用户输入登录信息后,返回 $callbackUrl 处理!
if($_GET['callback']=="sina"){
include_once('oauth/sina_oauth.php');
$b = new sinaOAuth(SINA_AKEY, SINA_SKEY, $_SESSION['keys']['oauth_token'], $_SESSION['keys']['oauth_token_secret']);
// 获取最终用户授权 access token
$last_token = $b-&getAccessToken($_REQUEST['oauth_verifier']);
$_SESSION['last_key'] = $last_// 保存到 Session 中
至此,$_SESSION['last_key']里保存的就是我们需要的用户授权码!推荐阅读last_key使用技术:
方法不是很难,注意转换就OK!代码写的比较乱,有问题可以留言交流!
Copyright (C) , All Rights Reserved.
版权所有 黔ICP备号-1
processed in 0.045 (s). 11 q(s)第三方登录:c# 怎么引用新浪微博授权_百度知道
c# 怎么引用新浪微博授权
我有更好的答案
&&&(;&&&&&&&
//让使用者自行选择一个授权方式&nbsp.Message);//S//}&&nbsp,&&&&&&&&&&C&&&&&&标准授权方式&);}
return&&&{&&&&&&&&&&&&&&&&&&&&&&&&&&&nbsp.AppSecrect.WriteLine();&=&&&&&&ex)&&&&&&AccessToken&&//一键授权登录&nbsp:&&nbsp.D2)&授权登录失败;&);&&&&&&&&&&&&&&&&&&&&&&&&&nbsp.WriteLine(&&&(&&&&&&&C&nbsp.GetAuthorizeURL();&&&&while&&);&nbsp.Key&authorizeUrl&&&&&&//&&&=&C&&Authorize()
OAuth&&&nbsp.Start(authorizeUrl).ReadLine();&&//&&&&&}&&&&&&&&2;&&&&&&&&&C&&&&=&&&OAuth(P&&&OAuth&nbsp.Write(&&&==&&&&&&//{&&&&nbsp,请重试;&&&//{&&=&&&&&&&&nbsp.WriteLine().WriteLine(&&&&&&&&nbsp.S&C&//请注意这里返回的是AccessToken对象;&nbsp.AppK&1;&&&&&&&nbsp.D&nbsp!ClientLogin(o)) //使用模拟方法&&&&&&&&&&nbsp.GetAccessTokenByAuthorizationCode(code);code&&&&&&&&nbsp。&&&&&&&nbsp.P&&&&&}&&&&&o;&&&&//string&&&new&&&(WeiboException&&&&&&&&&nbsp.S&&nbsp.&&&&=&&&C&&&&&&ConsoleKeyInfo&&&&&&&&&&&模拟授权方式&&&复制浏览器中的C&&&o&&&&&&&nbsp.WriteLine(&&&&nbsp.Weibo的授权static&&&&&&//}&//try&&);&&&&&&&{&ConsoleKelse&&&//C&&&&&&&&&&&&&&&o;P&P&&if&&&nbsp.S&nbsp.ReadKey(true);&key&nbsp,不是string&C&nbsp.WriteLine(&&&&&&&&&&&&&&&nbsp.D&&&nbsp.D//string&&&nbsp.CallbackUrl);&&&&&&C&&&&&&&&&&&//catch&&&&&&&&nbsp,&&&&nbsp.&&&nbsp.DaccessToken&&&&&&&请选择授权模式&&&&&&&&&&&&&&&{&&nbsp,再去新浪微博API下个SDK就可以使用了这是NetDimension首先你要弄到个AppKo
其他类似问题
44人觉得有用
为您推荐:
新浪微博的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 request header token 的文章

 

随机推荐