TikFinity 第三方介面

TikFinity 可以整合第三方工具。使用者可以在「動作與事件」中選擇「第三方動作」選項,再從兩個下拉式選單中選擇第三方工具的動作。如果你想開發這樣的工具,你的工具必須在連接埠 8832 上提供 API,TikFinity 會透過這個 API 查詢資料或觸發動作。

API

你的工具必須提供以下端點:

應用程式資訊

回傳要在 TikFinity 中顯示的應用程式資訊。

GET http://127.0.0.1:8832/api/app/info

JSON 回應:


{
  "data":{
    "author":"@zerodytrash",
    "name":"AwesomeApp",
    "version":"1.0"
   }
}

取得類別

回傳你的應用程式支援的類別清單(Array)。

GET http://127.0.0.1:8832/api/features/categories

JSON 回應:


{
    "data": [
        {
            "categoryId": "smart_device_control",
            "categoryName": "Control Smart Devices"
        },
        {
            "categoryId": "serial_port_control",
            "categoryName": "Control Serial Port"
        },
        ...
     ]
}

取得動作

回傳所選類別的動作清單。

GET http://127.0.0.1:8832/api/features/actions?categoryId=smart_device_control

JSON 回應:


{
    "data": [
        {
            "actionId": "turn_lights_off",
            "actionName": "Turn Lights Off"
        },
        {
            "actionId": "turn_lights_on",
            "actionName": "Turn Lights On"
        },
        ...
    ]
}

執行動作

執行使用者選擇的動作。

POST http://127.0.0.1:8832/api/features/actions/exec

JSON 內容:


{
  "categoryId":"smart_device_control",
  "actionId":"turn_lights_on",
  "context":{
    "triggerTypeId": 3,
    "userId": "123456789",
    "username": "Tesuser",
    "coins": 12
  }
}

JSON 回應:


{
  "data":[]
}

跨來源資源共用(CORS)

由於 TikFinity 是網頁應用程式,你的 API 必須設定標頭並回應預檢 OPTIONS 請求,明確允許存取,否則存取會失敗。請在所有回應中回傳以下標頭:


Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: *
Access-Control-Allow-Methods: *

觸發資訊

POST /api/features/actions/exec 請求的 context 中包含 triggerTypeId 屬性,可用來判斷是什麼觸發了事件。以下是可能的觸發原因:


1 = Share
2 = Command
3 = Gift (min coins value)
4 = Gift (specific gift)
6 = Join
7 = Likes (taps)
9 = Follow
10 = Subscribe
11 = Chat (any message)
12 = Emote
13 = First User Activity

錯誤處理

如果你的應用程式在處理請求時發生錯誤,或你想提醒使用者某件事,只要在回應中加入「message」屬性,TikFinity 介面就會顯示這則訊息。

回應範例:


{
  "message": "An error occurred while processing your request."
}

支援

如果有任何疑問或問題,請到 TikFinity Discord 聯絡我們。