標籤:android discuz style http color io os ar for
我是一樓:
想做iOS用戶端這個念頭,有了幾個月了,這個禮拜一辭了實習工作,跑回來做iOS用戶端的開發,已經是第四天了。為嘛要做這個呢,因為現在的用戶端是在是太挫我覺得有點看不下去...而且點擊圖片牆就閃退有木有...傳說還有廣告(我沒發現..)。
剛開始,纏著墨魚問有沒有API,墨魚說沒有...
好吧,然後我嘗試著看HTML原始碼...準備在用戶端解析HTML中的內容,然後擷取地址和各種文章資訊(標題,發帖人等等)來進入文章,然後通過POST類比電腦端的操作來實現發帖等功能,但是。HTML的內容是這樣的:
<td class="icn" style="padding-left:10px;">
<a href="http://bbs.zjut.edu.cn/forum.php?mod=viewthread&tid=1625794&extra=page%3D1" title="新視窗開啟" target="_blank">
<img src="template/yeei_dream1/css/yeei//folder_common.gif" />
</a>
</td>
<th class="common" style="padding-left:8px;">
<em>[<a href="http://bbs.zjut.edu.cn/forum.php?mod=forumdisplay&fid=465&filter=typeid&typeid=71">求助</a>]</em> <a href="http://bbs.zjut.edu.cn/forum.php?mod=viewthread&tid=1625794&extra=page%3D1" onclick="atarget(this)" class="xst" >電影雙語如何切換音頻啊?菜鳥求助啊</a>
</th>
<td class="by">
<cite>
<a href="http://bbs.zjut.edu.cn/home.php?mod=space&uid=183630" c="1">月辰弋羽</a></cite>
<em><span>2014-9-7</span></em>
</td>
<td class="num"><a href="http://bbs.zjut.edu.cn/forum.php?mod=viewthread&tid=1625794&extra=page%3D1" class="xi2">4</a><em>48</em></td>
<td class="by" style="padding-right:10px">
<cite><a href="http://bbs.zjut.edu.cn/home.php?mod=space&username=%E6%B3%89%E5%88%9D%E5%85%89" c="1">泉初光</a></cite>
<em><a href="http://bbs.zjut.edu.cn/forum.php?mod=redirect&tid=1625794&goto=lastpost#lastpost"><span title="2014-9-12 16:59">6 天前</span></a></em>
</td>
</tr>
WT* is this!用正則抓取也顯得煩瑣(樓主菜),而且在手機上開啟一個網頁就是幾百K顯然不是太好的(考慮這麼多用移動的孩子還停留在EDGE...)。
然後我想到了iOS用戶端。iOS用戶端難道也是通過這種愚蠢的方式的嗎!就沒有正常人類用的JSON來傳輸資料、負責互動嗎!於是樓主祭出神奇Charles,開啟抓包,用手機登上用戶端:登入...抓包...結果如下
然後傳回值如下
{
"secret": "2a113ad6cfadce314a60a79d33cb7",
"token": "8a7e56597e8b55881c67b1cb28b1b",
"uid": 273684,
"avatar": "http://center.zjut.com/images/noavatar_middle.gif",
"fid": 1,
"rs": 1,
"counts": null
}
這就是我們想要的東西啊(墨魚說沒有API....)!試想一下有了這個東西,假如我們在任何用戶端需要登入,我們只要根據(需要寫的API就是這樣子的,當然還需要說明欄)
| 參數 |
變數 |
| appName |
精弘論壇 |
| email |
iosapp(使用者名稱) |
| forumKey |
CIuLQ1lkdPtOlhNuV4 |
| forumType |
7 |
| packageName |
com.mobcent.newforum.app82036 |
| password |
我是密碼 |
| platType |
5 |
| sdkType |
1 |
| sdkVersion |
2.0.0 |
在用戶端發起請求:
<font color="#0000ff">http://bbs.zjut.edu.cn/mobcent/login/login.php</font>?<font color="#0000ff">forumType</font>=7&<font color="#0000ff">forumKey</font>=CIuLQ1lkdPtOlhNuV4&<font color="#0000ff">sdkType</font>=1&<font color="#0000ff">packageName</font>=com.mobcent.newforum.app82036&<font color="#0000ff">platType</font>=5&<font color="#0000ff">appName</font>=%E7%B2%BE%E5%BC%98%E8%AE%BA%E5%9D%9B&<font color="#ff0000">email</font>=<font color="#ff0000">帳號</font>&<font color="#0000ff">sdkVersion</font>=2.0.0&<font color="#ff0000">password</font>=<font color="#ff0000">我是密碼</font>
就能夠擷取到以上的JSON,而有了"secret": "", "token": "", 後續的任何發帖之類的操作,我們才可以進行(作為參數傳遞)。
如果能得到現有APP的這套API,那麼我們就可以實現所有現有的功能了...有同學會問:已經有了幹嘛再實現一遍...?...因為現在的APP(iOS)開啟圖片多的文章閃退(沒有經過圖片壓縮),文章沒有緩衝(開啟比較慢),而且介面沒辦法定製,更沒法擴充...這個APP的來頭的話,是安米網:http://www.appbyme.com/mobcentACA/index.html
當然這不是一個開源的用戶端(否則怎麼加入廣告賺錢),API顯然不公開...
樓主不是很懂後端,不懂discuz (php寫的?)加入一個外掛程式,然後寫一套自己的API工作量是怎麼樣子的(還有難度)...但是如果想要完全自主,這肯定是一種更好的方法。
當然樓主現在正在第二條路上,整理安米產生的用戶端的API,如果可以整理這麼一套API,無論iOS、Android還是WP,只有有人願意做,我們都可以做出用戶端來。
樓主現在正在做iOS用戶端,進度可以在 https://github.com/DikeyKing/jinghong 上看到(剛剛實現完登入...)
如果,選擇走第二條路,那現在很需要人去整理出這套API。
003 精弘iOS/Android/WP用戶端