淘宝开放平台很多API需要授权后才能使用。
授权的时候就需要一个回调地址。
通过回调,我们可以获取保用用户名,淘宝ID,过期时间等资料,方便后续开发。
制作授权页面
这里我们直接修改welcome的index方法,代码如下:
public function index()
{
$tbnick = get_cookie('taobao_user_nick');
$etime = get_cookie('expire_time');
$tbserid = get_cookie('taobao_user_id');
$session = get_cookie('access_token' );
$data = array(
'taobao_user_nick' => $tbnick,
'expire_time' => $etime,
'taobao_user_id' => $tbserid,
'access_token' => $session
);
$this->load->view('welcome_message',$data);
}
模板代码,由于页面简单,用pure的CSS框架。
大华软件授权
大华软件授权
大华软件的使用导引,大华软件一般需要到这里授权
如何使用
由于大华很多软件都是调用淘宝开放平台的API,而这需要您的授权。授权过程非常简单,点击授权链接登录即可自动保存。
点击给我授权,
授权后请记住您的淘宝数字ID
。
忘记淘宝数字ID或授权过期怎么办
我们将在下面给您提供查询接口,只需要输入淘宝账号,或您重新授权一次。授权有效期一个月。如果授权失败,请重新授权。
查询结果
#
淘宝用户名
过期时间
淘宝数字ID
session
1
=$taobao_user_nick?>
=$taobao_user_id?>
=$access_token?>
如果名字里含有乱七八糟的字符查不到,别查了,重新授权下吧。
拼接授权链接
上面的页面,主要是为了方面用户操作,同时为了友好显示,把用户授权后的信息又给保存了下来。
https://oauth.taobao.com/authorize?response_type=code&client_id=25307802&redirect_uri=http://vipapi.dahuariji.com/index.php/welcome/oauth&state=vipapi&view=web
处理回调内容
用户正常授权后,我们取回所需要的内容。
public function oauth()
{
$url = 'https://oauth.taobao.com/token';
$postfields = array('grant_type' => 'authorization_code',
'client_id' => '你的appkey',
'client_secret' => '你的appkey',
'code' => $_GET['code'],
'redirect_uri' => 'http://vipapi.dahuariji.com/index.php/welcome/oauth');
$post_data = '';
foreach ($postfields as $key => $value) {
$post_data .= "$key=" . urlencode($value) . "&";
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
//指定post数据
curl_setopt($ch, CURLOPT_POST, true);
//添加变量
curl_setopt($ch, CURLOPT_POSTFIELDS, substr($post_data, 0, -1));
$output = curl_exec($ch);
curl_close($ch);
$j = json_decode($output);
$tbnick = $j->taobao_user_nick;
$etime = $j->expire_time;
$openuid = $j->taobao_open_uid;
$tbserid = $j->taobao_user_id;
$session = $j->access_token;
$data = array(
'taobao_user_nick' => $tbnick,
'expire_time' => $etime,
'taobao_open_uid' => $openuid,
'taobao_user_id' => $tbserid,
'access_token' => $session
);
if ($session) {
set_cookie('taobao_user_nick',$tbnick,2592000);
set_cookie('expire_time',$etime,2592000);
set_cookie('taobao_user_id',$tbserid,2592000);
set_cookie('access_token' , $session,2592000);
//入库
$querys = $this->users_model->get_user($tbserid);
if ($querys->num_rows() == 1)
{
$query = $this->users_model->update_user($data);
}
else
{
$query = $this->users_model->insert_user($data);
}
//
}
//$this->load->view('welcome_show',$data);
//跳转到额新页面展示
redirect("http://vipapi.dahuariji.com/index.php/welcome/showuid/".$tbserid);
}
这里为了显示简单点,跳转到新的页面,简单的显示了下。
public function showuid()
{
$uid = $this->uri->segment(3);
$data =array('uid' => $uid);
$this->load->view('welcome_show',$data);
}
数据库的基本操作,增删改查
public function get_user_by_name($taobao_user_nick)
{
$query = $this->db->get_where('usertoken', array('taobao_user_nick' => $taobao_user_nick), 0,1);
return $query;
}
public function get_user($taobao_user_id)
{
$query = $this->db->get_where('usertoken', array('taobao_user_id' => $taobao_user_id), 0,1);
return $query;
}
public function insert_user($data)
{
return $this->db->insert('usertoken', $data);
}
public function update_user($data)
{
return $this->db->replace('usertoken', $data);
}
这样一个基本的session授权管理就做好了。