<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      淘寶API應用開發小試

      無力吐槽淘寶開發平臺相關文檔的表述清晰度、錯誤率、各種費解的概念、讓人頭暈目眩的導航等等。至少能夠在幾年前就開放眾多的API供第三方調用,算得上是有前瞻性的一次重要舉措。閑來無事,咱也費心研究了下,有錯莫怪我,要怪就怪淘寶文檔太不給力。

      大致是這么個流程:創建應用——開發應用——提交審核——上線使用。

      在創建應用前,還得支付寶實名認證。像咱這種基本不網購的人,支付寶的賬號密碼綁定手機號是啥早忘了。于是用我表妹賬號,特別開心的是,表妹已經開了家網點,沒幾個月,據說小丫頭片子已經能月入2K了(利潤)。哎,我又想轉行了。。。我用我表妹賬號,能訂閱已經上線的賣家服務,發現很多都是免費而且做的不錯的,也有淘寶自己開發的應用,比如量子恒道。

      我特地研究了下這個應用,發現單憑現在開放出來的TOPAPI,基本上不能獲取該應用所需的數據,比如實時客戶訪問。結論:第三方只能在較小范圍內做做簡單業務處理和數據分析,能賺到錢,但想要賺大錢,精致程度如淘寶本土應用,我認為幾乎是不可能的事,除非淘寶真的打算將這塊蛋糕完全奉獻出來。

      廢話少說,開始創建應用,換句話說就是填寫基本信息。

      應用分web應用和客戶端應用。貌似客戶端應用發布后,是通過web下載安裝的,而且資質要求很高,我等屌絲只能不關心略過。web應用有個回調URL,其實就是你的web服務站點地址,在沙箱環境管理下,我們可以將回調URL設為localhost以便本機開發測試。

      授權協議:若要獲取私密數據,需要得到用戶授權。默認是OAuth2.0協議。要求先獲取授權碼,然后通過授權碼獲取訪問憑證和刷新憑證,應用可以通過訪問憑證獲取用戶私密數據,當訪問憑證過期時,可以嘗試使用刷新憑證重新獲取訪問憑證,當然刷新憑證也有有效期,過期只能讓用戶重新授權。

      原本使用HttpWebRequest獲取憑證,可參看dudu的ASP.NET MVC通過OAuth調用Google API獲取用戶信息。后來想說學學新概念,改為用httpclient獲取,當然過程很坑爹。 

       1 async Task<string> GetToken(string code)
       2 {
       3     WebRequestHandler webRequestHandler = new WebRequestHandler();
       4     webRequestHandler.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(RemoteCertificateValidate);
       5     HttpClient client = new HttpClient(webRequestHandler);
       6     var httpContent = new FormUrlEncodedContent(new Dictionary<string, string>()
       7     {
       8         {"grant_type", "authorization_code"},
       9         {"code", code},
      10         {"client_id", "1021489060"},
      11         {"client_secret", "sandboxccbc898dce7e6525cca1b1f1c"},
      12         {"redirect_uri", "http://localhost:9198"}
      13     });
      14     string uri = "https://oauth.tbsandbox.com/token";
      15     var response = await client.PostAsync(uri, httpContent);
      16     return response.Content.ReadAsStringAsync().Result;
      17 }

      由于淘寶沙箱的證書無效,webRequestHandler.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(RemoteCertificateValidate);忽略證書驗證,否則得不到期望的結果,可能會拋異常。await client.PostAsync(uri, httpContent);這句折磨我很久,具體細節可以看我的上一篇博文:async、await在ASP.NET[ MVC]中之線程死鎖的故事

      下面開始調用API。我們可以直接通過訪問WebApi獲取Json格式的數據,不過還要轉換成實體類神馬的太過麻煩,幸好淘寶為幾種流行的語言提供了SDK工具包,我屁顛屁顛地下了.net版本,開用。

      獲取店鋪信息:

      1 private Shop GetShopInfo(string nick)
      2 {
      3     ITopClient client = new DefaultTopClient("http://gw.api.tbsandbox.com/router/rest", "1021489060", "sandboxccbc898dce7e6525cca1b1f1c");//實例化ITopClient類
      4     ShopGetRequest req = new ShopGetRequest(); //實例化具體API對應的Request類
      5     req.Fields = "sid,cid,nick,title";
      6     req.Nick = nick;
      7     ShopGetResponse rsp = client.Execute(req);//執行API請求并將該類轉換為response對象
      8     return rsp.Shop;
      9 }

      DefaultTopClient構造函數的三個參數分別為沙箱API地址(上線使用時請改為正式地址),APPKEY,APPSecret,這兩個東西是在創建應用時給到我們的,也有沙箱和正式環境兩個版本。Request.Fields表示請求的字段(不同字段訪問級別可能不一樣,這方面我沒去研究),其余屬性一般為請求參數,不同API的參數要求請參看對應的文檔說明。當Response返回時,會將數據轉化成實體類,方便.NET程序訪問。

      我們也可以將TopApi封裝為自己的WebApi供JS請求(猜測未驗證:由于眾所周知的跨域問題,JS應該不能直接請求TopApi,或者說相當麻煩。不過善良的淘寶也同樣提供了JSSDK工具包,具體如何應用請有興趣的同學研究好告訴我:))。

      獲取商品列表:

       1 public class ItemController : ApiController
       2 {
       3     public IEnumerable<Item> GetItemsInventory(string sessionKey)
       4     {
       5         ITopClient client = new DefaultTopClient("http://gw.api.tbsandbox.com/router/rest", "1021489060", "sandboxccbc898dce7e6525cca1b1f1c");
       6         ItemsInventoryGetRequest req = new ItemsInventoryGetRequest();
       7         req.Fields = "approve_status,num_iid,title,nick,type,cid,pic_url,num,props,valid_thru,list_time,price,has_discount,has_invoice,has_warranty,has_showcase,modified,delist_time,postage_id,seller_cids,outer_id";
       8         ItemsInventoryGetResponse rsp = client.Execute(req, sessionKey);
       9         return rsp.Items;
      10     }
      11 }

      前臺JS就可以如是調用:

       1 $.ajax({
       2     url: '/apis/Item/GetItemsInventory?sessionKey=@ViewData["SessionKey"]',
       3     type: "get",
       4     dataType: "json",
       5     success: function (data) {
       6         ConstructData(data);
       7         $("#grid").kendoGrid({
       8             dataSource: {
       9                 data: data,
      10                 pageSize: 15
      11             },
      12             height:530,
      13             scrollable: true,
      14             sortable: true,
      15             filterable: true,
      16             pageable: {
      17                 input: true,
      18                 numeric: false
      19             },
      20             columns: [
      21                 { field: "Title", title: "商品名稱" },
      22                 { field: "Price", title: "售價", format: "{0:c}", width: "130px" },
      23                 { field: "Num", title: "庫存", width: "130px" },
      24                 { field: "ListTime", title: "上架時間" },
      25                 { field: "DelistTime", title: "下架時間" }
      26             ]
      27         });
      28     }
      29 });

      這里需要注意,返回的data并不能直接拿過來用。因為淘寶SDK中的.NET實體類加了Serializable特性且屬性為自動屬性,序列化為Json對象屬性名稱XXX將變為<XXX>k__BackingField,對這種名稱的屬性JS只能通過中括號的形式訪問,點形式讀取屬性將讀不到,造成有些組件(比如KendoUI的Grid)數據無法綁定。更詳細信息可參看C#對 Json的序列化和反序列化會出現“k_BackingField”。

      運行程序:

      首先會跳到授權界面(如果你的應用不涉及到私密數據的訪問,那么可以不考慮這個步驟)。

      在大部分瀏覽器中,由于沙箱地址的證書無效,會導致這一界面顯示異常。在Chorme中,可以事先使用用戶賬號登錄mini.taobao(沙箱使用,模擬真實環境),在IE10中干脆就無解。淘寶文檔中對這一情況作了一定說明。

      授權成功后,轉到應用界面:

      轉載請注明本文出處:http://www.rzrgm.cn/newton/archive/2013/05/14/3078788.html                       

      posted @ 2013-05-15 08:50  萊布尼茨  閱讀(8088)  評論(31)    收藏  舉報
      主站蜘蛛池模板: 亚洲高清日韩专区精品| 国产伦一区二区三区精品| 国产成人精品亚洲资源| 国产三级精品片| 人妻av无码系列一区二区三区| 日韩区二区三区中文字幕| 日本一区二区三区四区黄色| 亚洲区福利视频免费看| 国产女人被狂躁到高潮小说| 高清自拍亚洲精品二区| 伊人久久大香线蕉综合观| 久久久亚洲欧洲日产国码αv| 中文字幕亚洲国产精品| 亚洲成年av天堂动漫网站| 国产91午夜福利精品| 免费大片av手机看片高清| 久久夜色精品国产噜噜亚洲sv| 日韩亚洲视频一区二区三区| 精品无人乱码一区二区三区的优势| 国产69精品久久久久99尤物| 亚洲欧洲∨国产一区二区三区 | 午夜福利精品国产二区| 国产日韩一区二区三区在线观看| 亚洲 日韩 国产 制服 在线| 粉嫩av国产一区二区三区| 国语精品国内自产视频| 无码人妻一区二区三区AV| 亚洲狠狠婷婷综合久久久| 国产一区二区在线有码| 丰满少妇高潮惨叫久久久| 亚洲色大成网站www在线| 国产精品国产片在线观看| 日本高清中文字幕一区二区三区 | bt天堂新版中文在线| 欧美人成精品网站播放| 精品国产欧美一区二区五十路| 亚洲精品中文字幕尤物综合| 久久国产精品不只是精品| 色成人亚洲| 内射极品少妇xxxxxhd| 看全色黄大黄大色免费久久|