TikFinity-Third-Party-Interface

TikFinity biedt de mogelijkheid om tools van derden te integreren. Gebruikers kunnen via Actions & Events de optie "Third-party action" kiezen. Daarna kan de gebruiker in twee keuzemenu's een actie van de tool van de derde partij selecteren. Als je zo'n tool wilt schrijven, moet je tool een API aanbieden op poort 8832. TikFinity gebruikt deze API om gegevens op te vragen of acties te activeren.

API

Je tool moet de volgende endpoints bieden:

App-info

Geeft informatie over je app terug die in TikFinity wordt getoond.

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

JSON-respons:


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

Categorieën ophalen

Geeft een lijst (array) terug met categorieën die je app ondersteunt.

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

JSON-respons:


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

Acties ophalen

Geeft een lijst terug met acties van de geselecteerde categorie.

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

JSON-respons:


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

Actie uitvoeren

Voert de actie uit die de gebruiker heeft geselecteerd.

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

JSON-body:


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

JSON-respons:


{
  "data":[]
}

Cross-origin resource sharing

Omdat TikFinity een web-app is, moet je API de toegang expliciet toestaan door headers in te stellen en preflight-OPTIONS-verzoeken te beantwoorden. Anders mislukt de toegang. Geef de volgende headers terug bij alle responses:


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

Triggerinformatie

Het POST-verzoek /api/features/actions/exec bevat het attribuut triggerTypeId in de context waarmee je kunt bepalen wat de gebeurtenis heeft geactiveerd. Hier is een lijst met mogelijke triggerredenen:


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

Foutafhandeling

Als je applicatie een fout tegenkomt bij het verwerken van de verzoeken of je de gebruiker ergens voor wilt waarschuwen, voeg dan het attribuut "message" toe aan de respons. De TikFinity-UI toont dan een bericht.

Voorbeeldrespons:


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

Support

Als je vragen of problemen hebt, neem dan contact met ons op via de TikFinity Discord.