淘寶API開發系列---阿里.聚石塔.開放平臺的使用

很久沒有繼續跟進淘寶的API使用了,有不少作相關應用的同行都來諮詢,不少都由於本身開發工做比較忙而沒有來得及好的處理,前幾天,有一個朋友叫幫忙指導如何使用淘寶API,因爲原來有一些成熟的例子應用,所以原覺得直接運行或者稍微修改一下便可,所以沒有太多的注意。html

但是,發現淘寶的API應用變化已經很大了,離我最後一篇淘寶API例子的隨筆《淘寶API開發系列---淘寶API的測試及使用2 》有一年多的時間了,所以從新到http://api.taobao.com/myresources/standardSdk.htm裏面下載最新的SDK進行更新調整,但是裏面不少接口已經有所變化,有些已經在客戶端SDK裏面再也不支持。api

首先咱們須要申請一個應用session

特別的是,如今的淘寶API客戶端應用,也只有公司帳號才能使用,普通的淘寶用戶只能使用Web應用方式,貌似若是不是選擇客戶端應用,那麼使用Winform程序,將不能正確獲取相關的API信息。我使用公司帳號調整一個應用爲客戶端應用。app

我在我原來例子的基礎上,根據最新的SDK進行了修改,有些如不須要SessionKey獲取用戶信息的接口已經不能使用了,例如客戶的買入的訂單記錄也不能使用了,並且新增了不少相關的接口內容。函數

爲了更好對API的使用,咱們須要使用淘寶API的測試工具進行測試相關的接口,以下界面所示。工具

對於須要獲取用戶私密信息,如店鋪及交易等重要信息,還須要獲取用戶的SessionKey的,咱們能夠經過下面接口函數,彈出登陸窗口,而後登陸後,定位到對應的App應用頁面,而後頁面加載的時候,獲取到對應的SessionKey。post

 

經過上面兩個對話框的登陸和確認操做,獲取到TOP受權碼,並根據規則得到SessionKey了,這樣一些重要數據就能夠經過獲取其中的SessionKey進行獲取了。測試

 

首先咱們來看看幾個功能模塊的界面效果和操做代碼。this

1)獲取登陸用戶的信息url

主要代碼以下所示:

            if (string.IsNullOrEmpty(sessionKey))
            {
                sessionKey = GetAuthorizeCode(this.appkey);
            }

            //用戶的信息
            Console.WriteLine("用戶的信息");
            UserSellerGetRequest req = new UserSellerGetRequest(); //實例化具體API對應的Request類
            req.Fields = "user_id,nick,created,buyer_credit,type,sex";
            UserSellerGetResponse rsp = myclient.Execute(req, sessionKey);//執行API請求並將該類轉換爲response對象
            Console.WriteLine(rsp.Body);
            if (rsp.User != null)
            {
                //Console.WriteLine(rsp.User.Nick);
                //Console.WriteLine(ObjectToString(rsp.User));
                List<User> list = new List<User>();
                list.Add(rsp.User);
                this.winGridView1.DisplayColumns = req.Fields.Replace("_", "");//對應字段的屬性沒有「_」字符的
                this.winGridView1.DataSource = list;
            }

 

2)獲取單獨商品信息

獲取單獨的產品信息不須要SessionKey,具體代碼以下所示。

            //單獨商品的信息
            Console.WriteLine("單獨商品的信息");
            ItemGetRequest req = new ItemGetRequest();
            req.Fields = "num_iid,title,nick,pic_path,cid,price,type,location.city,delist_time,post_fee";
            req.NumIid = 10838073156L;//3838293428L;
            ItemGetResponse itemRsp = myclient.Execute(req);
            if (itemRsp != null && itemRsp.Item != null)
            {
                List<Item> list = new List<Item>();
                list.Add(itemRsp.Item);
                this.winGridView1.DisplayColumns = req.Fields.Replace("_", "");//對應字段的屬性沒有「_」字符的
                this.winGridView1.DataSource = list;
            }

 

 

3)獲取店鋪商品列表

開發淘寶應用,不少時候,用於本公司的ERP或者產品管理系統與淘寶店鋪的數據同步,所以須要獲取本身商店的一些商品數據,而後進行修改更新等操做。獲取商品信息主要代碼以下所示。

            if (string.IsNullOrEmpty(sessionKey))
            {
                sessionKey = GetAuthorizeCode(this.appkey);
            }

            //查詢店鋪商品信息
            Console.WriteLine("查詢店鋪商品信息");
            ItemsOnsaleGetRequest req = new ItemsOnsaleGetRequest();
            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";
            req.PageNo = 1;
            req.PageSize = 40;

            //顯示列表信息
            ItemsOnsaleGetResponse itemRsp = myclient.Execute(req, sessionKey);
            if (itemRsp != null)
            {
                this.winGridView1.DisplayColumns = req.Fields.Replace("_", "");//對應字段的屬性沒有「_」字符的
                this.winGridView1.DataSource = itemRsp.Items;
            }

 

4)獲取店鋪賣出交易信息

店鋪的賣出交易信息獲取的代碼以下所示。

            if (string.IsNullOrEmpty(sessionKey))
            {
                sessionKey = GetAuthorizeCode(appkey);
            }

            //賣出交易
            Console.WriteLine("賣出交易");
            TradesSoldGetRequest req = new TradesSoldGetRequest();
            req.Fields = "tid,title,price,type,num_iid,seller_nick,buyer_nick,status,receiver_state,receiver_city,receiver_district,receiver_address";
            req.PageNo = 1L;
            req.PageSize = 40L;
            TradesSoldGetResponse soldRsp = myclient.Execute(req, sessionKey);
            if (soldRsp != null)
            {
                this.winGridView1.DisplayColumns = req.Fields.Replace("_", "");//對應字段的屬性沒有「_」字符的
                this.winGridView1.DataSource = soldRsp.Trades;
            }

以上就是一些基礎淘寶API的使用說明,固然,完善的淘寶應用系統客戶,可能須要作更多的東西,如商品信息同步、庫存同步、自動評價、自動發貨等操做,不過基本的操做思路是很接近的,只須要進一步查找淘寶API的使用說明,以及一些經驗代碼便可。

相關文章
相關標籤/搜索