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