2016年3月16日 星期三

跆拳道足技展示(TKD)APP(v1.0)開發心得分享

最近做了一個「跆拳道足技展示」的APP,英文名稱Taekwondo Kick Demo,簡稱TKD,現在已上架到Google Play上,iOS的部份則還在等審查中。

基本上做這個APP的目的是想要讓更多人了解跆拳道這個運動,以推廣為目的,因此是永久免費的APP,而做這類的APP也算是我個人的興趣,也希望藉由分享自己的興趣及各種成果來找到更多志同道合的朋友來一起努力追求夢想。

 


發想與起源

在大學時代我全心全力投入的事情有兩件,第一件是到處參加跆拳道比賽,和各種不同的選手比賽,追求拳來腳往的快感。第二件則是程式設計,然而程式設計是非常消耗精神和時間的,不利於經常需要參加比賽的運動選手所需要的固定作息時間,於是我當時將絕大部份的時間和心思都投入了跆拳道對練技巧的鑽研,但實際上我還是利用了寫程式的一些方法來提升自己的實力,從某個角度來說,我當時是把比賽的應對法則寫成了程式,再經由自我訓練的方式將程式強制輸入到自己的身體裡。用了這個辦法,讓我在當時得到了足以挑戰世界的實力和自信。雖然後來因為種種原因而沒有繼續比賽下去,卻又在陰錯陽差之間讓我全心投入了軟體開發的領域,累積了十幾年的各種開發經驗下來,我也算是有自信可以寫出所有自己想寫的程式,重點有明確的邏輯需求,接下來的關鍵只在於有多少資源,需要花多少時間而已。

從2012搬回台北的這幾年來,我一直想開發的是一種可以跟自己做跆拳道對練的虛擬3D應用程式,但這幾年來卻因為種種瑣事,一直無法如願。
除了生活瑣事之外,其中最大的原因是我在前二十多年以來,前十年只專注於跆拳道對練法則的鑽研,後十年則只專注於程式設計的領域,其他的事情我是完全不想管。

雖然我的心中有很多想法,但是我總覺得要表達自己的想法,應該是要先拿一個東西出來給別人看,告訴別人我能做得到,而不是只靠一張嘴講得天花亂墜,實際上卻拿不出一點本事。
當然還有一個很大的問題在於,雖然我對這件事情很有興趣,但實際上我也還沒看到相關的商機,也沒有信心可以說服金主投入資金,所以我只能默默的利用業餘的時候,試著自己做做看。

嘗試與學習

由於資金有限,我花了將近一年的時間,做了各種技術面的嘗試,利用了一些網路上現有的資源去做,其中包含了Kinnect SDK和一些Unity相關套件,但一直找不到能令我滿意的工具。
最後我發現其實我對於3D技術的了解實在太有限,於是我又花了兩年的時間去電腦補習班學習3D遊戲的製作方法,雖然我真正想做的並不是遊戲,但可以肯定的是我應該可以在學習3D遊戲製作的過程中得到許多我想要知道的方法和技術。

在學習的過程中,我才發現到3D動畫的技術比我想象的要費工,而我想了解的也不過是其中的一小部份而已。對我來說,我應該先學會3D角色的控制,但事實上在試做之後,才發現3D人形的製作也比想象中難,但製做3D模型的過程倒也有趣。

從選用工具到上手

我一開始學的是3DS Max,雖聽說現在市面上大多的遊戲都是用這個軟體做的,但他的缺點就是只支援Windows,因為這些年來我已經完全習慣在OSX上面做開發了,實在不想只為了使用這個軟體而特地開啟Windows,於是我又重頭開始學習使用Maya,用了Maya之後,我發現用Maya比較容易做出質感較好的3D人體模型,而且有MEL可以輔助設計,感覺上比較適合原本就是RD的我,於是就改用Maya來做了。

但Maya和Max主要的功能還是在於3D動畫的製作,其中雖然也有可以用程式語言去控制模型的功能,但基本上仍然只限於動畫的製做層面,如果要做出可以與用戶互動的軟體,還是要靠遊戲引擎,目前我選用的是Unity,選用的原因主要是他比較容易上手,網路上的相關技術支援也比較充足。

從練習到實做

基於尊重原創,但又缺乏美術能力,而且3D塑模技術也不成熟,拿了幾張美女的照片塑出來的都像怪物,最後決定還是先拿自己的開刀好了~因為自己的人像無論做得好壞,都不會得罪別人,也不會有仿冒或被仿冒的問題存在,實在是一舉數得的選擇。


剛開始先在3DS Max上練習做的自己的頭像

後來將在Max做的頭像轉到Maya上修改過的頭像



全身做好上完骨架,腳底做得有點扁平足

太極一場

從剛上好骨架的T-Pose,要進入足技的準備動作之前,最順勢可以做的就是稍息,立正,平行預備,接著就有一股想做型場動畫的衝動,就做了太極一場的動畫來玩玩。後來覺得這些應該可以分享給有需要的人學習用,所以就乾脆PO到YouTube上了。

前抬腳

從平行預備動作接到前抬腳預備的動作也比較簡單,於是先做了前抬腳的動畫,但實際上這個動作做起來並不順利,因為電腦算的骨架動作會亂轉,最後只好一幀幀的將動作固定好。

下壓

做完前抬腳接著做下壓也是順理成章,基本上動畫的製作順利跟實際學習的過程幾乎可以完全相同。


前踢

接下來其他的足技動作就必須從平行預備接成退右腳預備的動作,由於之前做的太極一場有做前踢的動作,只要先做好退右腳之後,就可以直接把太極一場的前踢動作拿來接到後面去改一下就能完成。


旋踢


旋踢的動作只要把前踢的動作後半加上轉腰和膝蓋,腳背壓平即可。


側踢

旋踢改成側踢也是順理成章。


後踢


只要將側踢的前半段改成從背後轉身即可變成後踢。


後旋踢

後旋踢的轉身可以拿後踢的一部份和上端旋踢來改。

基本上這些動畫都是練習的作品,有不少人覺動作太快,但我個人是覺得現階段只要掌握關鍵幀的分解動作正確,動作的節奏合理即可,由於我最後想做的是可以和自己甚至是其他人做模擬對練的應用,如果是做為訓練器材,後續如果真的要調整,還有很多地方要依據各種狀況和需求去做修改。

基本動作都做完之後,就可以把些動畫丟到遊戲引擎(Unity)來玩了,於是剛開始的時候,由於我是想做一個能跟自己對練的人偶,因此我並不想知道他每一次都會做出什麼動作,所以就把所有動作加入了隨機的亂數,基本上做到這裡已經可以拿這組東西來做很多應用了,後來靈機一閃,就拿了這個東西來做成了現在的「跆拳道足技展示」APP。

從開發到上架

從將3D模型及動畫匯入到Unity,到做出可隨機踢擊各種基本動作,且可以隨機變換左右腳這個部份,大概花不到幾個小時的時間,程式量大概也不超過200行,就想把這些資源做成現在的TKD APP應該不是什麼難事。

原本的設計就是先做一個可以依照學習動作的順序來展示動作,之後也可以按照用戶的喜好,點選自己想看的動作,而隨機踢擊的部份則可以用來做一些簡單的小測驗來提升用戶學習上的樂趣,大致上的構想就是這麼簡單。

但實際上要將這個簡單的構想做成APP則沒有想象中的順利,其中最花時間的程式其實並不是人偶的控制,而是UI(使用者界面)的設計及整個動線的控制,大概花了一個半月左右才做完,之後先拿給完全不懂跆拳道的兒子女兒玩玩看,發現了一些設計不良的地方及Bug,又做了一些補強,雖說不滿意,還有很多可以改進的地方,但基本功能目的已經達到,其實已經可以先上架後續再慢慢修改了。

由於這是我第一次將Unity的專案上架到App Store及時Google Play,在準備上架的打包及材料上也遇到了一些小問題,幸好最後都沒有花很多時間就解決了。

目前已知問題

目前比較明顯的問題是在某些設備上展示踢擊動作時,人物面孔會出現破裂的狀況:目前原因不明,因為在Maya或Unity環境下都沒有出現這個問題,也無法在開發環境中模擬出這種狀況,很難解決,有可能要重製人物模型,但也有可能重製後仍然無法解決。

但老實說我是一個內向的人,不是很喜歡抛頭露面,實在不想花太多時間和心思在這個模型上,如果可以的話,還是再放幾個帥氣美型的角色上去把那個怪老頭換下去比較實在~XD。

相關連結如下:








2013年2月7日 星期四

iOS 版Chrome解決網頁亂碼問題

在iOS 設備上瀏覽網頁的確是一件很舒適的事,但長期下來唯一覺得美中不足的地方就是有些中文或日語等雙字元編碼的網頁會全部都是亂碼,無法閱讀,身為IT人,當然知道其原因所在,簡單的說就是瀏覽器無法辨識該網頁的編碼,一般在PC上的瀏覽器都有手動調整編碼的功能,但在iOS Safari上就是找不到這個功能,之前遇到這種狀況,我都會乖乖放下iOS設備,去電腦前開啓那個網頁,再手動調整一下編碼。

最近才突然發現iOS Chrome其實已經解決了這個問題,當然還是要做一點手動設定才行,其實非常簡單,比在PC上要容易多了,步驟如下:

1.按右上角的選單鈕。
2.選擇選單中的設定選項。
3.選擇進階下的內容設定。
4.開啟自動偵測編碼選項。
5.在提示框中點選繼續。
6.完成。

目前試了幾個本來無法瀏覽的網站,都可順利看到正確的文字了。









2012年1月12日 星期四

Xcode 4.2 - iOS SDK Storyboard學習心得分享(二)- Navigation Controller Transition

這次要分享的是Navigation Controller在Storyboard上的使用方法,我們可以從上次的學習心得的Project繼續做下去,關於Storyboard的基本用法,可參考下列網址:
Xcode 4.2 - iOS SDK Storyboard學習心得分享(一)- Modal View Controller Transition


1.從右下角的Objects裡將Navigation Controller拖拉至Storyboard。
2.點選右上角的Attribute Inspector。
3.勾選Is Initial View Controller,將此Navigation Controller變成初始頁。













4.拖拉一個Bar Button Item至Root View Controller的Navigation Bar右側。
5.在按鈕上按右鍵,出現關聯選單。
6.從Storyboard Segues的Push右側的小圓圈拖立至Main View Controller。













7.建立關係後,Root View Controller和Main View Controller之間會建立一個Push關係鏈,Push關係鏈的動畫只有一種從右側滑入的動畫,沒得選。


















8.執行動畫如下圖。


2012年1月10日 星期二

Xcode 4.2 - iOS SDK Storyboard學習心得分享(一)- Modal View Controller Transition

Xcode 4.2出來到現在已有一段時間了,這一版有一個很特別的功能就是Storyboard,他可以方便讓UI設計者在這個Storybaord上拖拉UI的Layout,並可在各View之間建立關係,也可以直接在上面設定各View之間的過場動畫,有了這個功能,將更有利於UI設計人員來使用。



先來介紹如何做出有Storyboard的Project:

1.從選單中選取File -> New -> New Project。

2.在這裡,我們先選擇最簡單的Single View Application,選好點選右下方的Next。

3.輸入Product Name,要用Storyboard的,記得要勾選Storyboard,選好點選右下方的Next。
4.選擇你要存放的路徑,選好點選右下方的Create。

5.在左方的Navigators欄,點選MainStoryboard.storyboard,即可在中間的主視窗看見Storyboard,由於選的是Single View Application,所以預設就有一個ViewController。

接下來可以開始在Storyboard上設計UI了:

1.先從右下角的控件列表中拖拉出ViewController和Button, Label等其他控件到Storyboard上,做成了Main View和Modal View兩個ViewController。

2.在Main View的To Modal View按鈕上按右鍵,會出現按鈕的關聯選單,將Storyboard Segues - Modal右側的小圈圈拖拉到Modal View上。

3.關閉關聯選單,可看到兩個ViewController之間已建立了Modal的關係,點選該關係鏈上的圓圈,右側的Utility欄會出現該Modal鏈的屬性設定,其中Transition欄即為過場動畫效果設定。

4.點選左上角的Run鈕即可執行結果。

執行結果影片如下,點選To Modal View按鈕,自動從下方推上來一個Modal View,此為Default Transition,到此為止,不需寫任何程式即可做到這個程度,至於其他基本的動畫效果,只要改一次Transition的設定,再Run一次就可以看到,有興趣的可以自行測試。



接下來要注意了,要如何按下To Main View按鈕回到Main View呢?
有一個很簡單的做法,就是再從To Main View按鈕,再拉回MainViewController,
雖然可以這麼做,但這不是好的做法,因為他會再從ModalViewController上方,再蓋上一層MainViewController,如果兩個按鈕一直重覆按下去,就會像堆疊一樣不斷堆高,記憶體也就會不知不覺地被耗盡。
較理想的做法還是遵循既有的ModalViewController的處理方式,只要在ModalViewController.m中所對應的IBAction中加一句:
[self dismissModalViewControllerAnimated:YES];
即可將ModalViewController移除,回到MainViewController,且動畫會自動從相反方向動作。


2012年1月3日 星期二

用 CentOS 架設 VPN 學習心得

之前每次一去到大陸,就上不了Facebook, YouTube等網站,後來看到有人去了大陸,照樣能上FB,一問才知道是用了VPN。

後來有朋友要去大陸,說要跟人租VPN來上FB,我就稍微研究了一下架設VPN Server的方法,當時有找到Windows XP的VPN Server架設教學,但我實在不想在家裡整天開一台Windows XP,只為了讓他從大陸連進來上FB,這樣還要花我的電費,而且有問題時還要我幫他處理,而另一方面,我家的頻寬也很有限,萬一他中了木馬什麼的,把我家的網路搞掛了,我還很麻煩,所以還是建議他去租VPN來用。

後來我自己要去大陸出差時,本來有考慮在XP上裝個VPN Server,但想到Windows比較容易當機的問題,到時候家裡又沒人能幫我處理,又找了一下Linux的VPN Server架設方法,稍微在CentOS試了一下,覺得跟教學的狀況有很大的出入,而當時時間也蠻趕的,也就沒搞下去了。

最近剛好有空,而且前一陣子發現要Google找CentOS的設定方法應該要用CentOS來查找,而不該用Linux,因為Linux版本太多了,很可能設定方法都不大一樣,換了關鍵字一查之後,果然很快就找到方法,也設好了,詳細設定方法可參考下列網址:
CentOS 5.3 下快速安装配置PPTP VPN 服务器- 张宴的博客- Web系统 ...

抄錄內容如下:

VPN的英文全称是“Virtual Private Network”,翻译过来就是“虚拟专用网络”。顾名思义,虚拟专用网络我们可以把它理解成是虚拟出来的企业内部专线。它可以通过特殊的加密的通讯协议在连接在Internet上的位于不同地方的两个或多个企业内部网之间建立一条专有的通讯线路,就好比是架设了一条专线一样,但是它并不需要真正的去铺设光缆之类的物理线路。这就好比去电信局申请专线,但是不用给铺设线路的费用,也不用购买路由器等硬件设备。VPN技术原是路由器具有的重要技术之一,目前在交换机,防火墙设备或Windows等软件里也都支持VPN功能,一句话,VPN的核心就是在利用公共网络建立虚拟私有网。

  虚拟专用网(VPN)被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。虚拟专用网是对企业内部网的扩展。虚拟专用网可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。虚拟专用网可用于不断增长的移动用户的全球因特网接入,以实现安全连接;可用于实现企业网站之间安全通信的虚拟专用线路,用于经济有效地连接到商业伙伴和用户的安全外联网虚拟专用网。

  PPTP 全称为 Point to Point Tunneling Protocol -- 点到点隧道协议,是VPN协议中的一种。

  一、CentOS 5.3 下 PPTP VPN 服务器安装

  1、安装相关软件
  32位版:
yum install -y ppp iptables
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.rhel5.i386.rpm
rpm -ivh pptpd-1.3.4-2.rhel5.i386.rpm

  64位版:
yum install -y ppp iptables
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.rhel5.x86_64.rpm
rpm -ivh pptpd-1.3.4-2.rhel5.x86_64.rpm


  2、配置文件编写
  ①、配置文件/etc/ppp/options.pptpd
mv /etc/ppp/options.pptpd /etc/ppp/options.pptpd.bak
vi /etc/ppp/options.pptpd

  输入以下内容:
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
idle 2592000
ms-dns 8.8.8.8
ms-dns 8.8.4.4



  ②、配置文件/etc/ppp/chap-secrets
mv /etc/ppp/chap-secrets /etc/ppp/chap-secrets.bak
vi /etc/ppp/chap-secrets

  输入以下内容
# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
myusername pptpd mypassword *

  注:这里的myusername和mypassword即为PPTP VPN的登录用户名和密码



  ③、配置文件/etc/pptpd.conf
mv /etc/pptpd.conf /etc/pptpd.conf.bak
vi /etc/pptpd.conf

  输入以下内容:
option /etc/ppp/options.pptpd
logwtmp
localip 192.168.9.1
remoteip 192.168.9.11-30

  注:为拨入VPN的用户动态分配192.168.9.11~192.168.9.30之间的IP



  ④、配置文件/etc/sysctl.conf
vi /etc/sysctl.conf

  修改以下内容:
net.ipv4.ip_forward = 1


  保存、退出后执行:
/sbin/sysctl -p



  3、启动PPTP VPN 服务器端:
/sbin/service pptpd start



  4、启动iptables:
/sbin/service iptables start
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.9.0/24 -j MASQUERADE

使用Windows和iPhone都順利連上VPN之後,我想上網,卻發現連不上,於是又找到了CentOS share IP的方法,詳細內容如下:
把CentOS Linux 當IP 分享器@ 光速世界:: 痞客邦PIXNET ::

抄錄內容如下:


其實花個一、二千元買了一台功能強IP分享器都遠不及
在一台舊主機上自己架Linux來當IP分享器的效能好
但缺點是比較耗電
當然如果這台主機能再上面提供其他服務
例如檔案伺服器做家中的檔案分享或是FTP、WEB伺服器之類的多功能用途的話
那就比較能物盡其用了
也可以剩下萬把元再去買一台NAS來做檔案分享

以下介紹如何設定Linux的iptables,讓Linux能變身成為超強的IP分享器
其實IP分享說穿了就只是修改封包標頭並轉寄而已
所以要讓Linux當成IP分享器用,並不需安裝什麼特別的套件
只需要對iptables做設定,讓封包轉寄就可以達成IP分享器的功能

首先先開啟Linux封包轉寄的功能
修改
 /etc/sysctl.conf將 net.ipv4.ip_forward的值改為 1接著輸入 sysctl -p 使剛才修改的值生效

接著使用 iptables 指令將內網封包轉至外網
/sbin/iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.0/24 -j MASQUERADE(將來自 192.168.100.x IP的封包,轉寄至 ppp0)

以上二個動作就可以讓Linux變成IP分享器了,是不是很簡單。
下面提供一個完整的範例,可以存入文字檔,並給予執行權限直接執行

vim /ipshare
-------------------------------------------------------------------------------------
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -F -t nat
/sbin/iptables -X -t nat
(如果有其他對外服務,如網頁伺服器(port 80),可將對映的port打開)
/sbin/iptables -A INPUT -i ppp0 -p tcp --dport 80 -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.0/24 -j MASQUERADE
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
/sbin/iptables -A INPUT -i ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A INPUT -i ppp0 -m state --state NEW,INVALID -j DROP

-------------------------------------------------------------------------------------
chmod +x /ipshare
/ipshare


看了一下,發現跟VPN設定中的某些步驟差不多,但他的說明比較清楚,其中:
/sbin/iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.100.0/24 -j MASQUERADE
這條指令中的ppp0指的是Public IP的路徑,於是我用ifconfig查了一下,Public IP的網卡為eth1,把指令改成如下:
/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 192.168.100.0/24 -j MASQUERADE
再下一次指令之後,iPhone和Windows都能從這個IP上網了。

因為公司有在用CentOS,這樣一來,如果公司有人去到大陸去,想上某些網站,或需要連回公司內網,就很方便了,另一方面,公司也有MIS人員,有什麼問題都可以找到人來協助處理。


*有需要下載CentOS的可以到下列網址,就近下載。
CentOS Mirror List

自製Xperia Play專用PlayStation遊戲心得

Xperia Play出到現在都超過半年了,官方提供的PS遊戲還是那幾款,再加上目前台灣現在不能從Android Market上買付費軟體,而前一陣子Android升到2.3.4之後,連PS模擬器都被禁用了。

前幾天在Mobile01上找到了可以把PS ISO檔轉成apk檔的教學,在安裝apk後,可以直接用Xperia Play上自帶的PS模擬器PlayStation@Pocket來玩。


有關教程的部份可參考下列網址:
[教學]PsXperia,PS遊戲轉Xperia Paly專用格式轉換器- Mobile01

如果是Android 2.3.4版的Xperia Play手機,可參考下列網址:
PSXPeria2.0(Beta)釋出!!

如果想要下載遊戲,可使用電驢下載:
《索尼家用综合电脑娱乐平台游戏经典回顾 第一季》(PlayStation Games Collection Vol.1)[PS] 第一季 ~完结~_VeryCD电驴下载

但電驢有時候不見得能下載得完全,也可以到FileCrop網站輸入「psx 遊戲名」來搜尋,用Http下載。

如果自己有原版或翻版的PS遊戲,也可以使用Alcohol 120%來製作.iso檔。

目前測試.iso, .bin, .img檔都可以轉成.apk。

目前試過的遊戲如下:

遊戲名測試結果
機器人大戰Alpah能玩,但開頭動畫會lag,遊戲語音後半會消音
機器人大戰Alpah外傳能玩,遊戲中語音後半會消音
妖精戰士完全正常
妖精戰士2完全正常
刀魂能玩,背景破圖一半
生死格鬥完全正常
Tear Ring Saga能玩,部份畫面有細微的破圖
實感賽車能玩,但車子跑到某些點會嚴重lag
鐵拳3能玩一下下,打完第一場就會Crash
鐵拳2不能玩,人體嚴重扭曲
惡魔城年代紀不能玩,只能看開頭動畫

由於妖精戰士2代可以使用1代破關的記憶繼續玩下去,所以試著把記憶卡中的資料從妖精戰士1的存檔目錄copy到2的存檔目錄,之後再開啟2,可以從記憶卡中找到1的記錄。
同理,兩片裝以上的遊戲應該也可以比照此做法來繼續玩下去。

記憶卡的記錄檔放在遊戲資料目錄(/Android/data/com.sony.playstation.遊戲名/)下的files/save/xxx/0.raw(記憶卡1)和1.raw(記憶卡2)。

*ps: xxx為亂數產生之16進位目錄名。


裝了幾款能玩的遊戲之後,原廠附的8G記憶卡已經被我塞滿了,所以有點想買32G記憶卡了,有人說原廠附的記憶卡速度比較快,本來想買class10的記憶卡來換,但又嫌貴,從機器裡拿出原廠的一看,的也只有class2,看來買較平價的class4應該也夠用,但說不定有些遊戲效果不佳是跟記憶卡的速度有關,class10說不定真的比較牛,後續狀況就等我換了記憶卡再說吧!

2011年10月4日 星期二

淘寶網API學習心得(二)

從上次寫完「淘寶網API學習心得(一)」到現在已經過了相當的時間,這次要寫的是測試心得,之所以會隔這麼久,是因為測試API需要一組app id和app secret, 而要取得app id和app secret的前提是你的帳號必須做過實名認證,目前我台灣的用戶好像做不了實名認證,所以就只能請公司在大陸申請商家帳號了,由於公司申請淘寶商家帳號花了不少時間,所以直到最近才拿到一組可以讓我測試的商家帳號。

有了實名認證的商家帳號後,就可申請應用程序,有了自已的應用程序就有app id和app secret,詳細申請方法可參考下列網址:
http://dev.open.taobao.com/dev/index.php/Taobao_ID(淘帐号)产品介绍

申請好之後可以從開發者中心登入,登入後選擇「應用管理」->「應用列表


在應用列表頁,可選擇應用程式圖標,名稱,或右側的修改連結進入「開發測試」頁。

在開發測試頁,在預設的情況下是處於「沙箱環境開發」之狀態,在填入表單中的必填欄位後,即可點選下方之「進入正式環境測試」。
沙箱環境和正式環境的差別在於,在沙箱環境所做的任何行為都只是在一個模擬的淘寶網環境,不會影響到正式環境,但有些功能只有在正式環境才比較好測試,如搜尋功能。
正式環境測試是有時間和次數限制的,目前的情況是,每個App只有3次進入正式環境測試的機會,每次可以有5天的時間做測試,所以,如果要進入正式環境,最好還是先做了充份的準備再進去會比較好。
點選左側下方的「配置沙箱環境」連結,可進入配置沙箱環境頁。



如果要在沙箱測試到較完整的功能,建議註冊兩組沙箱測試帳號,「普通帳號」和「商城帳號」各申請一組,並將商城帳號與App綁定。

接下來,我們可以用API在綁定的沙箱商城帳號中上架,但在此之前需先做商城類目授權,也就是說,我們只能在商城中販賣有得到授權的類目的商品。
登入沙箱商城後,點選左側選單的店舖管理->「商城類目授權」。

從「選擇經營類別」選項中選定一個類別,按右側的「搜索」鈕,下方會出現子選項,選定你所要授權的類別後,點選列表下戶的「授權」按鈕。
類目授權完成後,需要等到隔天早上才能生效,之後才能在API中使用你所要使用的類別。


接下來,可以試著用「API測試工具」新增商品。
測試時,記得點選app_key右側的「自定義」按鈕,填入前面申請好的app_key和app_secret。


在上圖表單中,選擇不同的API類目,則API中的選項會跟著改變,而選擇了不同的API,則下方會根據所選的API出現不同的表單。
若要新增商品,可在API類目選擇「商品API」,API選擇「taobao.item.add」,選好後,下方會出現下圖之表單,右側有號的為必填欄位。
當你把游標停在右側的「說明」上方,數秒後可看到該欄位的說明,也可從表單上方的「API详情」連結查看各欄位之詳細說明。
其中要注意的欄位是cid,也就是類目id,此id需使用「API属性工具」查出來。

在「API属性工具」介面中,選擇你在沙箱商城中申請好的類目,則表單右側會出現其所對應之cid。

根據所選的類目的不同,下面幾個欄位的值也會有所不同,如果該欄位有值,則應將各值填到「API測試工具」中所對應的欄位中。

新增商品成功後,可使用查詢API,依照所產生的num_iid來查詢,或到沙箱商城的「商品管理」頁面,亦可找到該商品,也可以用你申請好的買家帳號去登入沙箱商城,購買該商品。