在國內繼續出 tweet (2) – jtapi API proxy
最近我的中興 Android ZTE V987(國內用)在國內無法使用 Plume 上 twitter,可能一直使用的 twip proxy 被封鎖或失效了,當然使用 VPN 是絕對無問題,不過可能是中興的 firmware bug,ZTE V987 的 VPN 功能是無效的。(有關 twip API,請參考舊文章「在國內繼續出 tweet (1) – twip API proxy」)
毫無頭緒下,在 Play Store 中搜索 “twip”去踫踫運氣,發現了一個叫 twidere 的 twitter client 軟件,用家可以自設 API 使用,心想在國內繼續使用 twitter 便有一線曙光。
後來看到 twidere 的作者 Mariotaku 在網頁中推薦使用 jtapi proxy,原來 jtapi 正就是爆棧大師宅里奧 @Mariotaku 的傑作,所以自己也要安裝 jtapi 來玩玩看,取代被封鎖或失效了的 twip 。
在 twidere 中設定 jtapi proxy,結果還是未能更新 tweets。
心灰意冷之餘,發現 Mariotaku 有另一件好玩兒,是配合系統外掛框架 Xposed framework 使用的 UTwitterAPI module(Universal Twitter API),Xposed 框架是一個外掛系統,可以在不修改 APK 的情况下改變程式的操作參數,例如可以令到 Android 上的 twitter client 就算不支援自設 API proxy,仍然可以在系統層面硬性使用 jtapi proxy。
使用 Xposed 必須取得 root 權限,首先在 ZTE V987 安裝好 Xposed framework 及 UTwitterAPI module,最後才發現在國內不能正常從 Play Store 下載 Twitter for Android,唯有從另一台 Galaxy Note III (香港用)把 twitter APK 檔連同已登入的 data 資料一拼傳送至 ZTE V987,APK 可以用藍牙傳送安裝,data 資料則使用 DataSync 把軟件資料 Sync 至 ZTE V987。
結果非常正面,現時可以在國內使用 official twitter client 玩得到 twitter。
安裝 JTAPI
1. 以下文字都由參考作者 Mariotaku 的 Japti How-to “Custom API Howto“,用家可以去原作者網頁查看是否有更新。
2. 先到 Google App Engine https://appengine.google.com/ 申請一個 application ,例如 Alias: “myjtapi.appspot.com”
3. 下載最新 Oracle JDK – Java SE Development Kit 7u51 (123.64 MB | jdk-7u51-windows-i586.exe),並安裝。
4. 到 mariotaku/jtapi | GitHub 右方功能表按 Download ZIP 標籤下載 jtapi 程式 jtapi-master.zip (27MB),並解壓。
5. 下載並解壓 Google App Engine SDK for Java,最新版本是 appengine-java-sdk-1.8.9
6. 把 jtapi-master.zip 解壓出來文件檔案中,把其中一個 \war 目錄,整個 copy 去 \appengine-java-sdk 之下。
7. 在目錄 \appengine-java-sdk 打開 Command Window ( Windows XP 用家在 File Manager 中右按滑鼠鍵選擇 Open Command Window here )
8. 在 MS-DOS 輸入以下兩句指令(中途需要輸入 gmail login 及 password)去安裝 tjapi,執行兩個指令後皆出現 “Success” 便完成。
bin\appcfg.cmd -A myjtapi update war
bin\appcfg.cmd -A myjtapi set_default_version war 4
DOS 畫面顥示:
Reading application configuration data…
……
Success.
Cleaning up temporary files for module default…
Twidere
剛才介紹過 Twidere,是一款 Android 上的 Twitter client 軟件,在軟件中進入 Twidere > Settings > Network > Default API settings 可以自定 API 地址,於是趁 JTAPI 安裝好,在 OAuth 驗證設定中設定好 REST 和 OAuth 地址,注意別忘記最初的 “https” 及最後的 “/” 斜劃:
- REST Base URL 設定為以下地址
https://api.myjtapi.appspot.com/1.1/ - OAuth Base URL 設定為
https://api.myjtapi.appspot.com/oauth/
結果設定了 jtapi,在國內仍然未能更新或發送 tweets
Xposed Framework
Xposed 是一個外掛框架服務,於 Android 4.0.3 或以上版本使用,在不修改程式 APK 的情況下,配合額外的 Xposed module 模塊使用,便可以改變程式的操作參數,又不產生衝突,由於 Xposed 涉及系統,需要有 root 權限。
安裝 Xposed 好簡單,到 Xposed Module Repository 下載 Xposed Installer APK ,安裝後到 Xposed > Framework > Install/Update > 然後 reboot 一次便完成。
Universal Twitter API
至於 Universal Twitter API,它可以 Xposed Module Repository 網頁,或者在 Xposed Installer > 進入 Download > 搜索 “Twitter” > UTwitterAPI > Install 去安裝。
安裝後還要進行設定(UTwitterAPI 支援 jtapi 及 twip t 模式,一般 twitter client 例如 Seesmic, twicca, Twidere, Twitter, Plume 等都支援到):
- 在 Xposed Installer > Modules > Universal Twitter API > Set API
輸入 API address(例如: https://myjtapi.appspot.com) - IP address: (如圖)
- [v] Use API to login
- 退回 UTwitterAPI 界面按 (+) 選擇應用程式(例如:twitter)
- Reboot 手機
基本上,這樣子已經安裝好 UTwitterAPI module。
Twitter & DataSync
如果手機本身已經安裝好 twitter client 及 login 的話,應該可以直接使用。
我的情況是我的國內手機 ZTE V987 上要重新安裝 twitter client,而在國內又不能成功下載 twitter for Android,唯有從另一台 Galaxy Note III (香港用)把 twitter APK 檔連同已登入的 data 資料一拼傳送至 ZTE V987。
程式 APK 檔可以用藍牙傳送安裝,data 資料則使用 DataSync 把軟件資料 Sync 至 ZTE987。是需要把另一台手機上的 twitter client 連同 login data 資料搬過去。詳細方法可以參考我的舊文章「Android 乾坤大挪移 DataSync 2 – 修正 setup data」。
簡單來說,DataSync 的方法就是:
1) 兩台手機都安裝了 DataSync 及相同 application (ie. Twitter for Android)
2) 兩台手機登入同一 WiFi network 中,並開啟 DataSync
3) 在 NoteIII 手機上 DataSync > Application > 選擇 Twitter 加入去 Queued List
4) 按畫面上方的 ^V 標誌進行 Sync > 搜索 device > 選擇 device 並上傳
5) ZTE V987 的 DataSync 畫面會顯示 DONE SYNCING 表示完成
因為 NoteIII 的一套資料搬到 ZTE V987 去,所以在 ZTE V987 上可以直接使用到 twitter 了。
Terewong 兄,點解唔直頭用vpn?
@KingHung 因為部華為永遠上唔到VPN (哭)