入門
Integration overview
一個後端,所有平台 —— 接入一次,始終保持最新。
AskAIs 智能客服系統 是「一個後端 + 多端 SDK」:你只需把工作區設定一次,就能把客服聊天嵌到任何地方 —— 網站、行動 App、或任意後端服務。所有端連的都是同一個收件匣、同一個 AI 助理、同一套知識庫。
一個後端,所有平台
無論用哪個平台,接入都很短,而且對話、訪客、AI 回覆、各項設定全部共享。下面是每個平台怎麼裝,以及——很關鍵——它以後怎麼拿到更新:
平台一覽
| 平台 | 安裝方式 | 如何更新 |
|---|---|---|
| 網站 | <script src="…/widget.js"> | 自動 —— 每次頁面載入都抓取最新版 |
| iOS(Swift) | Swift Package / CocoaPods | 升級 SDK 版本號,重新打包發版 |
| Android(Kotlin) | Gradle | 升級 SDK 版本號,重新打包發版 |
| Flutter | pub | 升級 SDK 版本號,重新打包發版 |
| React Native | npm | 升級 SDK 版本號,重新打包發版 |
| 任意後端 | REST API / OpenAPI | 你自己的服務 —— 隨你部署 |
各端 SDK 通用嗎?
通用。它們只是同一個 AskAIs 智能客服系統 工作區的不同入口,完全互通:
- 同後端、同 app-id:所有端都連到你工作區裡的同一個收件匣。
- 同一訪客跨端續聊:用同一個 externalId 識別,網頁上開始的對話能在 App 裡接著聊。
- 設定全端共享:AI 助理、知識庫、營業時間、關鍵字回覆、常見問題都只設定一次,處處生效。
網頁 —— 官方嵌入(推薦)
在 </body> 前放這一行就裝好了,就這麼簡單。app-id 是公開的、可以放心寫進 HTML,在「設定 → 收件匣」裡複製。
<script src="https://cs.askais.com/widget.js"
data-app-id="YOUR_APP_ID"
data-base-url="https://cs.askais.com"
async></script>⚠️ 不要下載或自架 widget.js
網頁元件務必從 https://cs.askais.com/widget.js 載入。如果你把這個檔案下載下來自己託管、或編譯進自己的打包產物,就等於把它「凍」在某個舊版本 —— 我們之後的樣式更新、Bug 修復、新功能都到不了你這裡。從 cs.askais.com 載入,元件會自動保持最新,你什麼都不用改。
在你的頁面裡控制它(選用)
指令稿載入後,會有一個全域物件 window.SingChat:
// Open / close the widget
window.SingChat.open();
window.SingChat.close();
// Identify a logged-in user (so chats follow them across devices)
window.SingChat.identify({ externalId: "user_123", name: "Ada", email: "ada@acme.com" });行動 App(iOS / Android / Flutter / React Native)
原生 SDK 是編譯進 App 的,不像網頁元件那樣執行時自動更新;要拿新版,在套件管理器裡升級 SDK 版本號、重新發版即可。各端初始化思路一致 —— 指向 https://cs.askais.com,用 app-id 識別:
// Swift Package Manager
.package(url: "https://github.com/singlink/singlink-ios", from: "0.1.0")
let client = SingChatClient(baseURL: "https://cs.askais.com")
try await client.identify(.deviceAnonymous(appId: "YOUR_APP_ID"))任意後端 / 任意語言
不用 SDK 也行 —— 直接呼叫 REST API 即可識別訪客、收發訊息。我們還基於 OpenAPI 規範產生了 30+ 語言的 SDK。
# Any backend / language — talk to the REST API directly
curl -X POST https://cs.askais.com/api/v1/auth/identify \
-H 'Content-Type: application/json' \
-d '{"appId":"YOUR_APP_ID","externalId":"user_123"}'