TikFinity-Third-Party-Interface

TikFinityはサードパーティツールの統合機能を提供します。ユーザーはアクション & イベントを使用して「サードパーティアクション」オプションを選択できます。その後、ユーザーは2つのドロップダウンメニューからサードパーティツールのアクションを選択できます。このようなツールを作成する場合は、ツールがポート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"
   }
}

カテゴリーを取得

ツールがサポートするカテゴリーのリスト(配列)を返します。

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":[]
}

クロスオリジンリソース共有

TikFinityはウェブアプリのため、ヘッダーを設定しOPTIONSプリフライトリクエストに応答することで、APIは明確的にアクセスを許可する必要があります。そうしないとアクセスに失敗します。すべてのレスポンスに対して以下のヘッダーを返してください:


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 UIはその後メッセージを表示します。

レスポンス例:


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

サポート

ご質問や問題がある場合は、TikFinity Discordでお問い合わせください。