原生App如何對接社區接口?

Thread Source: 小白社区V5.1+授权中心+app原生源码

原生 App 對接社區,不是把網頁資料「搬進手機」就好。以小白社區 v5.1 新增的 api.php JSON 介面為例,Android 端可以透過接口取得文章、會員資料與通知,再用原生畫面呈現;但登入狀態、積分結算和未讀提醒如果沒先釐清,很容易出現網頁正常、App 卻不同步的情況。

先確認接口能做什麼

動手寫畫面前,最好先整理一份接口清單:登入與註冊、文章列表及詳情、發文、評論回覆、關注、收藏、簽到、訊息通知,分別需要哪些參數?回傳的 JSON 欄位是否固定?例如文章列表至少要有文章 ID、標題、作者、發佈時間及分頁資訊,App 才能穩定實作瀑布流或下拉載入。

這裡有個常被忽略的問題:api.php 存在,不代表上述功能都已開放接口。實際開發仍要逐項測試,缺少的能力再補端點,別等介面做好才發現「收藏可以顯示,卻不能取消」。

登入與積分,讓伺服器說了算

原生 App 如何對接社區接口,最關鍵的是身分驗證。建議全程使用 HTTPS,登入後以具有效期的憑證識別使用者;App 不應儲存明文密碼,也不能只憑使用者 ID 就允許發文或私信。若同時接入授權中心,也要區分「App 版本或授權驗證」與「社區會員登入」,兩者不是同一件事。

積分同樣應由後端計算。社區設有簽到、評論、收藏等每日任務,還有連續 7 天、30 天簽到獎勵;App 只負責送出操作並顯示結果。否則使用者連點兩次簽到,或網路重試造成重複請求,就可能多領積分。後端需要檢查當日狀態,並明確約定每天 0 點重置採用哪個時區。

通知別只做一個紅點

被回覆、被關注、收到私信,都涉及未讀數。App 可在進入頁面時向接口取得未讀數,讀取後再回報已讀;若想做到即時手機推播,還得另外接入推播服務,JSON 接口本身不會自動把訊息送到手機。我的看法是,先把資料同步與已讀狀態做準,比急著上推播更重要。畢竟紅點一直消不掉,使用者真的會煩。

評論(6)

提示:請文明發言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

  • 背包

    重複簽到那段太真實了,之前就是沒做後端檢查結果積分亂掉😅

    5 天前 Reply
  • 蛇女王 普通用户

    想問一下如果接口沒開放取消收藏,自己補端點會很麻煩嗎

    4 天前 Reply
  • QuantumChef 普通用户

    紅點消不掉真的超煩,認同先把已讀狀態做穩再談推播

    1 天前 Reply
  • 夜貓子 普通用户

    時區那個細節很多人會踩,0點重置到底算哪邊的時間一直搞不清

    14 小時前 Reply
  • 悲傷的月光 普通用户

    正準備對接v5.1,先整理接口清單這步確實不能省

    14 小時前 Reply
  • Wandering Ode

    HTTPS加憑證有效期這部分能不能再多講一點實作方式

    12 分鐘前 Reply