淘宝开放平台淘宝OAuth2.0服务 (一)

PHP 专栏收录该内容
8 篇文章 0 订阅

无可争议,无论什么样的开放平台,都会给开发者一个key,作为使用它api的标识,

怎么得到这样一个key,或者是实名注册,或者是公司名义,或者如何如何,

大差不差,都是那么些个东西。

淘宝开放接口亦然。

关于接口api的使用,以后再说。

但是这个用户授权的方式,现在使用的是——淘宝OAuth2.0服务

用的淘宝OAuth2.0的协议,其实之前还有一个top的协议,但是那个据官方说是不安全。所以转回头用这个淘宝OAuth2.0的国标协议。

作为开发者

 你要拿到你客户的资料,怎么拿到,正大光明的拿到,
 总要有方法吧,通过淘宝给你的工具就能拿到。
 淘宝为什么相信你,因为你前面一大堆的认证,实名说明你通过了淘宝的认证。
 仅仅是你有了资格。
 你可以通过淘宝拿到客户的数据,但是能不能拿到,还要客户给你。淘宝这样就类似中介。
 客户怎么给你,说简单一点,就是授权。授权你了,你就能通过淘宝提供的工具拿到数据。
 那么工具是什么,就是api
 怎么授权,就是上面这个玩意儿。


淘宝,我们作为开发者,需要了解他的接入体制。

top协议我在这里就不多说了,因为官方不推荐,推荐的是淘宝OAuth2.0服务 

那么他是怎么个运行过程呢。看看官方给的图。

看不明白没有问题,其实他就是说两个,关键词。

1.回调地址

2.sessionkey

 理解三个对象,你、你的客户、淘宝。

你的程序在你自己的服务器上,他的数据在淘宝的服务器上,你需要拿过来放到你的服务器上,

那么其实就是通过授权认证之后,形成了数据准备,然后在你的服务器上进行相关的逻辑实现。回调地址就是你的服务器的程序入口。

 授权是通过OAuth2.0协议的。他的流程就是图上。
 那么我作为开发者怎么做,我们的目标就是拿到sessionkey,有了这个你就能通过api调取用户的数据。
 OAuth2.0是怎么做到的
 1.你把你申请到的appkey之类的信息发给淘宝,让淘宝知道你是有资质的。会给你一个令牌,code,
 2.淘宝转发,到 https://oauth.taobao.com/token,然后你会就能获得一个json的数据,里面就有你的sessionkey
 ok,两个跳转之后,才能得到。
 第一次地址:https://oauth.tbsandbox.com/authorize,传递方法get
 第二次地址:https://oauth.taobao.com/token,传递方式post
 第二个之于php而言,用的是curl,post传递方式,其实也不难。

 ok这就是他的OAuth2.0服务的过程。

光说不练假把式。代码先放到这里,用的是本机+沙箱进行的测试。稍后我会编辑这个文章的。

//header
header("Content-type: text/html; charset=utf-8");
include "/src/TopSdk.php";//注意路径
include "/api/user.php";
include "/api/goods.php";
include "/api/msg.php";
include "/common/page.php";
include "/common/common.php";
include "/db/db.php";
$nowTime = time();//目前标准时间。
$c = new TopClient;
$c->appkey = "自己的appkey";
$c->secretKey = "sandbox6a2e60d4124feddfcf8db15e8";
$c->format = "json";
/**	
 * 访问路径		利用淘宝OAuth2.0服务 
 * @沙箱url:	https://oauth.tbsandbox.com/authorize?client_id=你自己id&response_type=code&state=1&redirect_uri=http://localhost/taobao/
 * @获取url:	https://oauth.tbsandbox.com/token
 * @沙箱账号:	sandbox_b_00 sandbox_c_1
 * @密码:		taobao1234	
 * @登出:		https://oauth.tbsandbox.com/logoff

 */

if((isset($_GET['code'])) and (!isset($_COOKIE['uid'])))
{
	$code = $_GET['code'];
	$postStr="client_id=自己的id&client_secret=sandbox6a2e60d4124feddfcf8db15e8&grant_type=authorization_code&code=".$_GET['code']."&redirect_uri=http://localhost/taobao";
	$sessionKey = oauthGetSessionKey($code,$postStr);
	freshUserTable($c,$sessionKey);
	refreshGoodsTable($c,$sessionKey);//刷新商品表
}
else
{
	if(isset($_COOKIE['uid']))
	{
		$uid = $_COOKIE['uid'];
		$dbObj3 = new Db('user');
		$tmp = $dbObj3->getOne("SELECT access_token FROM user WHERE uid='".$uid."'");
		$sessionKey = $tmp['access_token'];
		$dbObj3->mysql_close();
	}
	else
	{
		echo "请重新登录!";
?>
<a href="https://oauth.tbsandbox.com/authorize?client_id=自己的id&response_type=code&state=1&redirect_uri=<?php echo urlencode('http://localhost/taobao/'); ?>">请登录淘宝账号</a>
<?php
		exit();
	}
}

里面有一些方法,稍后贴出。




  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

澎蠡

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值