|
阿里巴巴开放平台 SDK 运行样例。! W( ?7 p9 b3 o+ _% s' Y/ N/ ?
) d, e' A8 a* B& W( v( R" R3 u
调用阿里巴巴开放平台的API你是不是获取不到访问口令,看一下我的例子吧,原因是后台已经更改,而网站的说明没有更新。% y: j4 x9 e3 X4 C$ b
& v% D( G* s% c6 B j3 r9 W2 c2 L4 OIniFile ini = new IniFile();8 v, A0 ~5 |5 @7 D: ?! d
Dictionary sl = new Dictionary();+ U0 t0 d% ]- q9 _
sl = ini.GetSectionValues("Setting");0 z) {/ r3 E- P/ t$ v2 J
strAppKey = sl["appKey"].ToString();
! r: n+ @0 {4 KstrAccToken = sl["access_token"].ToString();
) |4 P& w% r* ostrAppSecret = sl["appSecret"].ToString();
6 k/ A1 u; C- Ystring strTokeyTime = sl["datatime"].ToString();
5 N4 N4 |4 r9 V/ E3 T5 u9 ~string strRefresh_token = sl["refresh_token"].ToString();+ [) b0 C0 _4 E
7 B, C& y/ o, S
//比较令牌保存时间,如果比现在早10个小时以上就更新7 O1 {; x' [0 h. ~1 e* }
DateTime dt = Convert.ToDateTime(strTokeyTime);# ?$ ~% Y+ [4 w# Z
TimeSpan ts = System.DateTime.Now.Subtract(dt);" S+ K/ s/ W1 v; k; B F* h
if ((Int16.Parse(ts.Days.ToString()) >= 1) || (decimal.Parse(ts.Hours.ToString()) > 8))
, \' }/ ^7 E5 o5 r$ k% g/ n{
/ w& y" n$ b9 i ^1 ]//超过有效期,重新获取Access_Token: n0 X. n# B. d- w+ W: S, G5 f
//利用Refresh_token获取access_token6 h$ q9 c5 r. H0 ~: {
Dictionary ls = new Dictionary();. M b& t" o/ h1 {9 `% y6 H
string urlStr = "https://gw.open.china.alibaba.com/openapi/http/1/system.oauth2/getToken/" + strAppKey;& \6 A4 y7 N) y4 m, o- O
Dictionary dc = new Dictionary();
& {0 J! T z0 l) h+ g8 ldc.Add("grant_type", "refresh_token");4 @# h+ p5 _* v2 \& D: j9 L
dc.Add("need_refresh_token", "true");
8 q" J- U& _! W5 sdc.Add("client_id", strAppKey);
1 l( N9 y# n1 t3 r- ~dc.Add("client_secret", strAppSecret); d$ E# o) X3 W6 X% t/ l+ x
dc.Add("redirect_uri", "http://localhost");2 J( b8 j8 \$ n* O1 G4 f. C9 i
dc.Add("refresh_token", strRefresh_token);. d8 L' X3 s0 S
WebUtils wu = new WebUtils();2 U+ j6 r0 e! V" F* t: m
string tbxToken = wu.DoPost(urlStr, dc);
) W) Z- @- z+ hHashtable hs = (Hashtable)PluSoft.Utils.JSON.Decode(tbxToken);
$ O+ R5 W' T' n//保存令牌
7 T8 I' I& \( _, ]) M& Nini.WriteValue("Setting", "access_token", hs["access_token"].ToString());
n( |( q; F6 Y/ n1 {$ k1 c( Sini.WriteValue("Setting", "datatime", System.DateTime.Now.ToString());0 P. K4 j" H, c% e0 ]
' ` E5 u6 Y% F4 c( v% jstrAccToken = hs["access_token"].ToString();. [( Y8 @1 K+ _0 E' I; L' N
}
; y# F, Z3 ?" {$ n# V: z: l: h( w获取授权的CODE和令牌,分两/ Z# D: F6 N7 T2 ^7 K9 S
q! ?# C. y( A8 Y
资源下载地址和密码(百度云盘): [/hide] 百度网盘信息回帖可见
3 ^4 y" v# u3 k0 F( }
H# t: S2 ]" d$ @- b: _6 n
" H* f1 ?, I; b1 T; d0 K7 d. {0 G3 \4 o% w8 w
本资源由Java自学网收集整理【www.javazx.com】 |
|