为何要授权:
淘宝上有很多卖家店铺。现在淘宝应用市场有一个第三方应用。这个应用可以服务卖家店铺。我们知道第三方应用是不能随便读取卖家店铺的信息,比如订单、商品信息。现在卖家可以通过授权限制性的开放信息给第三方应用!
首先isv要在
淘宝开放平台
上申请一个应用,我申请的是百川应用。
如果没申请过应用,
淘宝帐号
登录到开放平台后
点击控制台
在右上角点击
创建应用
即可!
这里填写的
回调地址
就是用来获取授权码的,进而通过授权码获取
access_key
和
refresh_key
,点击
测试
弹出以下页面
这里点击授权输入手机验证码后将跳到回调地址页面,就是第一张图片填写的回调地址!
在这个回调地址后会跟上授权码code的值!
http://localhost:8080/openapi/taobao/oauth.vm?
code=Q3dEuVloHtME9q67FsQLRtsegtrdso8
&state=
有了授权码后,我们直接调用淘宝的接口,就能获取到访问令牌access_token
以下获取令牌代码参考http://open.taobao.com/
测试时需将test替换为自己申请应用获得的参数!client_id对应appkey client_secret对应appSecret
package com.xudong.top.test;
/**
* 文件名:OpenOauth.java
*
* 版本信息: v1.0
* Copyright Corporation 2015
* 版权所有
*
*/
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import com.taobao.api.internal.util.WebUtils; //引用top sdk
public class OpenOauth {
public static void main(String[] args) {
String url="https://oauth.taobao.com/token";
Map<String,String> props=new HashMap<String,String>();
props.put("grant_type","authorization_code");
props.put("code","回调页面生成的code");
props.put("client_id","test");
props.put("client_secret","test");
props.put("redirect_uri","http://localhost:8080/openapi/taobao/oauth.vm");
props.put("view","web");
String s="";
try{s=WebUtils.doPost(url, props, 30000, 30000);
System.out.println(s);
}catch(IOException e){
e.printStackTrace();}
} }
换取access_token返回值示例
{
“w2_expires_in”: 0,
“taobao_user_id”: “263685215”,
“taobao_user_nick”: “%E5%95%86%E5%AE%B6%E6%B5%8B%E8%AF%95%E5%B8%90%E5%8F%B752”,
“w1_expires_in”: 1800,
“re_expires_in”: 0,
“r2_expires_in”: 0,
“expires_in”: 86400,
“token_type”: “Bearer”,
”
refresh_token
“: “6200e1909ca29b04685c49d67f5ZZ3675347c0c6d5abccd263685215”,
”
access_token
“: “6200819d9366af1383023a19907ZZf9048e4c14fd56333b263685215”,
“r1_expires_in”: 1800
}