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

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

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

首先我們需要申請一個應用

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

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

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

對於需要獲取用戶私密信息,如店鋪及交易等重要信息,還需要獲取用戶的SessionKey的,我們可以通過下面接口函數,彈出登錄窗口,然後登錄後,定位到對應的App應用頁面,然後頁面加載的時候,獲取到對應的SessionKey。

 

通過上面兩個對話框的登錄和確認操作,獲取到TOP授權碼,並根據規則獲得SessionKey了,這樣一些重要數據就可以通過獲取其中的SessionKey進行獲取了。

 

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

1)獲取登錄用戶的信息

主要代碼如下所示:

複製代碼
            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的使用說明,以及一些經驗代碼即可。

 

主要研究技術:代碼生成工具、Visio二次開發、送水管理軟件等共享軟件開發
專注於Winform開發框架、WCF開發框架的研究及應用。
  轉載請註明出處:
撰寫人:伍華聰  http://www.iqidi.com

發佈了38 篇原創文章 · 獲贊 10 · 訪問量 36萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章