TikFinity-Third-Party-Interface

TikFinity menawarkan kemampuan untuk mengintegrasikan alat pihak ketiga. Pengguna dapat memilih opsi "Tindakan pihak ketiga" melalui Tindakan & Event. Pengguna kemudian dapat memilih tindakan alat pihak ketiga dari dua menu dropdown. Jika kamu ingin menulis alat seperti itu, alat kamu harus mengekspos API di port 8832. TikFinity akan mengakses API ini untuk query data atau memicu tindakan.

API

Alat kamu harus menyediakan endpoint berikut:

Info Aplikasi

Mengembalikan informasi tentang aplikasi kamu yang akan ditampilkan di TikFinity.

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

Respons JSON:


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

Dapatkan Kategori

Mengembalikan daftar (Array) kategori yang didukung aplikasi kamu.

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

Respons JSON:


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

Dapatkan Tindakan

Mengembalikan daftar tindakan dari kategori yang dipilih.

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

Respons JSON:


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

Jalankan Tindakan

Menjalankan tindakan yang dipilih oleh pengguna.

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

Badan JSON:


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

Respons JSON:


{
  "data":[]
}

Berbagi sumber daya lintas asal

Karena TikFinity adalah aplikasi web, API kamu harus secara eksplisit mengizinkan akses dengan menetapkan header dan merespons permintaan preflight OPTIONS. Jika tidak, akses akan gagal. Silakan kembalikan header berikut untuk semua respons:


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

Informasi Pemicu

Permintaan POST /api/features/actions/exec berisi atribut triggerTypeId dalam konteks yang dapat digunakan untuk menentukan apa yang memicu acara tersebut. Berikut adalah daftar kemungkinan alasan pemicu:


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

Penanganan Kesalahan

Jika aplikasi kamu mengalami kesalahan saat memproses permintaan atau kamu ingin memperingatkan pengguna tentang sesuatu, cukup tambahkan atribut "message" ke respons. UI TikFinity kemudian akan menampilkan pesan.

Respons Contoh:


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

Dukungan

Jika kamu memiliki pertanyaan atau masalah, silakan hubungi kami di TikFinity Discord.