本文讲述三部分内容:
1、如何拼装渠道管理和会员运营授权链接,
2、以及如何把渠道管理和会员运营授权链接封装生成淘口令,方便在淘宝APP上授权
3、如何获取授权后淘宝联盟返回的code值转换成授权码sessionkey(access token)
【特别提示】
如果你是开发APP,在你的APP中使用H5授权时,会要求输入用户的淘宝帐号和密码,用户体验不好。你可以用百川SDK唤起淘宝APP实现免帐密,再调用H5授权获取授权码(即以下publishersave接口的accesstoken参数)。
百川具体参考 https://baichuan.taobao.com/
首选要拼装授权链接,格式如下:
https://oauth.taobao.com/authorize?response_type=code&client_id=11111111&redirect_uri=http://www.xxx.com/&state=1234&view=wap
参数说明:
(1)response_type 可选值:code和token :表示授权值返回类型,推荐用code表示返回一串code码,需要再用函数(函数参下文)去解析成更详细的内容。token则会返回一串sessionkey码到回调链接的锚文本上。
(2)client_id 表示您的帐户应用的appkey值,在联盟会员中心的“推广管理”那有,或阿里开放平台上应用管理那可以找到
(3)state 你要回传到redirect_uri 网址上的自定义值,比如你的网站会员ID
(4)view 可选值 wap 或 web,在PC上授权用web,在手机移动终端上授权用wap
(5)redirect_uri 表示授权后联盟会回传到这个网址上相关数据,返回数据取决于response_type值。注意它不是乱传网址,必须是在开放平台那里设置的域名同一顶级域名下的网址。如下图:我在后台设置了http://wsd.591hufu.com/callback.php,那你redirect_uri参数可以设置成591hufu.com顶级域名下任意网址,比如http://www.591hufu.com/auth,
然后在你的APP中使用H5页面或百川接口给用户授权,也可以生成淘口令让客户复制后在淘宝APP上授权,
如果要生成淘口令,由于现在联盟开放给用户的淘口令生成接口主要是用于生成产品推广链接,而不能用于生成这种授权链接的淘口令,
为此您可以使用维易淘系链接生成淘口令API来封装生成,参http://wsd.591hufu.com/doc/shengchengtaokouling
示例:
http://api.vephp.com/tbtkl?vekey=xxxxxx&text=渠道管理和会员运营的授权&pic=http://wsd.591hufu.com/public/images/taopic.jpg&url=https%3A%2F%2Foauth.taobao.com%2Fauthorize%3Fresponse_type%3Dcode%26client_id%3D1111111%26redirect_uri%3Dhttp%3A%2F%2Fwww.591hufu.com/auth%2F%26state%3D1234%26view%3Dwap
返回值如下图:
其中的password就是授权链接封装后的淘口令。
以下以PHP为例,该函数可以把淘宝返回到redirect_uri地址的参数code转成授权码sessionkey(access token),
参数:
$appkey 您的应用的appkey
$secretKey 和appkey对应的“App Secret”,到阿里开放平台中该应用下查找。
$code 授权后返回的code值
$myApiCallbackUrl 授权后回调地址,在阿里开放平台中该应用下查找。参上图。
$re = getSessionkey('aWbGm2j3Lny531oK33Z7Gz919461899','11111111','355348324sadf666c4f4bb337e26801','http://wsd.591hufu.com/'); print_r ($re); /** * 生成sessionkey */ function getSessionkey($code='', $appkey='',$secretKey='',$myApiCallbackUrl='', $reJson=false) { if(empty($code) || empty($appkey) || empty($myApiCallbackUrl)) return false; $url = 'https://oauth.taobao.com/token'; $postfields= array( 'grant_type'=>'authorization_code', 'client_id'=>$appkey, 'client_secret'=>$secretKey, 'code'=>$code, // Cv3GiyrdH.....kmx2515957 , 30位 'redirect_uri'=>$myApiCallbackUrl ); //HTTP类POST方式获取,其它JAVA等语言改掉这里即可。 $re = (new http())::curlUrl($url, false, 'POST', $postfields); if($reJson) return $re; return json_decode (trim ($re),true); }
解码后,返回值如下:
Array
(
[w1_expires_in] => 2592000
[refresh_token_valid_time] => 1550114800877
[taobao_user_nick] => 维易淘客接口
[re_expires_in] => 0
[expire_time] => 1552706800877
[token_type] => Bearer
[access_token] => 70002100a178544bc1a....
[taobao_open_uid] => AAEEFpIasdf6wl6rlffjdasd1211
[w1_valid] => 1552706800877
[refresh_token] => 7000310161.....
[w2_expires_in] => 300
[w2_valid] => 1550115100877
[r1_expires_in] => 2592000
[r2_expires_in] => 86400
[r2_valid] => 1550201200877
[r1_valid] => 1552706800877
[taobao_user_id] => 111111111 //可以用它获取用户头像图
[expires_in] => 2592000
)
其中,access_token就是授权码,可以用于渠道管理和会员运营管理中API使用。
上面的返回值并没有用户的淘宝号头像图,你可以用 taobao_user_id 获取,用法如下:
把上面返回值中的taobao_user_id传值给下方链接的userId即可获取该用户头像。
宽度和高度可以自己修改:
https://wwc.alicdn.com/avatar/getAvatar.do?userId=11111&width=160&height=160&type=sns
百川等更详细授权方法参
https://mo.m.taobao.com/hyyyid#【注意:淘宝账号授权登录的技术接入流程说明】
APP授权案例参考:【粉象生活】http://dbzhi.ynqj9dd0ihqcj9v.com/m/businessschool.html?did=C8106F44-214C-4399-8C61-36530E59D7F1&tbNick=a%25E9%259C%258D%25E5%2586%25B0%25E5%2586%25B0&token=ba1e8a02701252c272244e8941cbe88c&v=1.6.2&idfa=2EAF5D32-14ED-4DEC-ADF0-F96ADDDEBC74&uid=427833&timeStamp=1551665728&id=41