淘宝oauth2.0授权流程

为何要授权:

淘宝上有很多卖家店铺。现在淘宝应用市场有一个第三方应用。这个应用可以服务卖家店铺。我们知道第三方应用是不能随便读取卖家店铺的信息,比如订单、商品信息。现在卖家可以通过授权限制性的开放信息给第三方应用!

首先isv要在淘宝开放平台上申请一个应用,我申请的是百川应用。



 如果没申请过应用,淘宝帐号登录到开放平台后点击控制台在右上角点击创建应用即可!

这里填写的回调地址就是用来获取授权码的,进而通过授权码获取access_keyrefresh_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
}

猜你喜欢

转载自tkfly.iteye.com/blog/2220166