TikFinity-Terceira-Parte-Interface

O TikFinity oferece a capacidade de integrar ferramentas de terceiros. Os usuários podem selecionar a opção "Ação de terceiros" via Ações & Eventos. O usuário pode então selecionar uma ação da ferramenta de terceiros a partir de dois menus suspensos. Se você deseja escrever tal ferramenta, sua ferramenta deve expor uma API na porta 8832. O TikFinity acessará essa API para consultar dados ou disparar ações.

API

Sua ferramenta deve fornecer os seguintes endpoints:

Informações do App

Retorna informações sobre seu aplicativo que serão exibidas no TikFinity.

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

Resposta JSON:


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

Obter Categorias

Retorna uma lista (Array) de categorias que seu aplicativo suporta.

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

Resposta JSON:


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

Obter Ações

Retorna uma lista de ações da categoria selecionada.

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

Resposta JSON:


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

Executar Ação

Executa a ação selecionada pelo usuário.

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

Corpo JSON:


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

Resposta JSON:


{
  "data":[]
}

Compartilhamento de Recursos de Origem Cruzada

Como o TikFinity é um aplicativo web, sua API deve permitir explicitamente o acesso definindo cabeçalhos e respondendo às requisições de preflight OPTIONS. Caso contrário, o acesso falhará. Retorne os seguintes cabeçalhos para todas as respostas:


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

Informações de Gatilho

A requisição POST /api/features/actions/exec contém o atributo triggerTypeId no contexto que pode ser usado para determinar o que disparou o evento. Aqui está uma lista de possíveis razões de gatilho:


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

Manipulação de Erros

Se seu aplicativo encontrar um erro ao processar as requisições ou se você deseja alertar o usuário sobre algo, apenas adicione o atributo "message" à resposta. A UI do TikFinity então exibirá uma mensagem.

Resposta de Exemplo:


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

Suporte

Se tiver dúvidas ou problemas, entre em contato conosco no Discord TikFinity.