说明:作为一个淘宝或者京东开放平台开发者,倘若只是有一个应用那也只能获得一个appkey和一个appsecret,没有授权就获取不到授权码,此时也便不能通过任何开放接口获取任何相关数据,以下便来分析如何在他用型正式环境下获得用户授权从而取得授权码最终调用接口取得数据方法。。。
/// <summary>
/// 取得回调地址,最终将这个回调地址(CallBackUrl)复制粘贴到淘宝开放平台开发者中心下的应用基本信息设置下的回调地址中或是京东宙斯开发者中心里面的应用管理中的回调页面URL中,如下图所示
/// </summary>
public string CallBackUrl
{
get
{
string url = Request.Url.LocalPath;
int tmp1 = url.LastIndexOf("/");
if (tmp1 < url.Length)
{
url = url.Substring(0, tmp1);
}
return "http://"+ Request.Url.Host + (Request.Url.Port != 80 ?":" + Request.Url.Port.ToString() : "") + url + "/Download.aspx";
}
}
一、淘宝开放平台
完成以上步骤之后,开始访问链接http://container.open.taobao.com/container?appkey=?点击进去之后会出现一个淘宝应用登陆授权页面,此时用所拥有的或是需要的淘宝店铺帐号进行登陆授权,让页面跳转到回调地址中设置的“Download.aspx”页面,此时在这个页面中应该已经有收到既定的一些应用参数,我们只需要通过Request.QueryString["top_session"].ToString()方法获得我们需要的appsession即可,至此,我们调用淘宝接口的一些应用参数已经获取完毕,就可以完成我们想要的操作了。
二、京东宙斯开放平台
完成以上操作之后,我们可以进入到回调页面的后台程序中作如下代码测试:
string code = Request.QueryString["code"];
string state = Request.QueryString["state"];
if (code+"" == "")
{
//这里是当页面没有获取到回调时,就让页面跳转到京东宙斯的登陆授权页面实现用户授权,其中的state为状态参数,由应用自定义,颁发授权后会原封不动返回
Response.Redirect(String.Format("https://auth.360buy.com/oauth/authorize?response_type=code&client_id={0}&redirect_uri={1}&state=dongte",
申请应用时获取的App Key, 应用管理中设置的回调页面URL));
}
else
{
//这里是当用户登陆授权之后进入
string jdurl =
String.Format("https://auth.360buy.com/oauth/token?grant_type=authorization_code&client_id={0}&client_secret={1}&scope=read&redirect_uri={2}&code={3}&state={4}",
申请应用时获取的App Key, 申请应用时获取的App Secret, 应用管理中设置的回调页面URL, 回调中获取的code, 回调中获取的state);
//最终生成的链接地址页面内容如下:
这里是一个json的文件,最终我们可以通过解析获取到授权码以及相关的参数信息,最终我们便可以通过这些参数完成我们想要的操作
}
评论