1. 程式人生 > >淘寶API開發系列---阿里.聚石塔.開放平臺的使用

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

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

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

特別的是,現在的淘寶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的使用說明,以及一些經驗程式碼即可。