Com a criação de webhooks, seu webservice receberá os eventos com as informações sobre as mudanças que ocorrem na Yube.
Hoje você é capaz de cadastrar um Webhook para cada Status da Organização.
Castrando esse webhook, quando o convite for alterado para o devido Status os servidores da Yube enviarão uma requisição para o seu webservice.
Veja como utilizar o evento de webhook no artigo Recebendo Webhooks.
Criando um Webhook
Para fazer o cadastro de um Webhook você vai precisar do ID do Status (veja Carregando informações da Organização para conseguir esta informação) e a url do seu webservice e enviar essas informações para a mutation createWebhook.
Mutation
mutation CreateWebhook($input: CreateWebhookInput!) {
createWebhook(input: $input) {
webhook {
successful
messages {
code
field
message
}
result {
__typename
id
url
status {
__typename
id
name
description
order
}
}
}
}
}
Variables
{
"input": {
"statusId": "U3RhdHVzOjUzNjlmNjIyLWY1MDctNDBlYi1iZDg3LTBkNDhjMGNhNTNkZA==",
"url": "https://webhook.site/4310f7dc-c356-48ce-b692-c970f035a79d"
}
}
Exemplo de Resposta
{
"data": {
"createWebhook": {
"webhook": {
"messages": [],
"result": {
"__typename": "Webhook",
"id": "V2ViaG9vazo5ZGU0NWE5OS1jZTc1LTRmZjUtOGQxYi1lM2FkOWU5M2Q2NjA=",
"status": {
"__typename": "Status",
"category": "IN_PROGRESS",
"description": null,
"id": "U3RhdHVzOjUzNjlmNjIyLWY1MDctNDBlYi1iZDg3LTBkNDhjMGNhNTNkZA==",
"name": "Pronto"
},
"url": "https://webhook.site/4310f7dc-c356-48ce-b692-c970f035a79d"
},
"successful": true
}
}
}
}
Essa requisição depende do envio da chave de autenticação.
Alterando a url de um webhook
Mutation
mutation UpdateWebhook($input: UpdateWebhookInput!) {
updateWebhook(input: $input) {
webhook {
successful
messages {
code
field
message
}
result {
__typename
id
url
status {
__typename
id
name
description
order
}
}
}
}
}
Variables
{
"input": {
"id": "V2ViaG9vazo5ZGU0NWE5OS1jZTc1LTRmZjUtOGQxYi1lM2FkOWU5M2Q2NjA=",
"url": "https://webhook.site/4310f7dc-c356-48ce-b692-c970f035a79d"
}
}
Exemplo de Resposta
{
"data": {
"updateWebhook": {
"webhook": {
"messages": [],
"result": {
"__typename": "Webhook",
"id": "V2ViaG9vazo5ZGU0NWE5OS1jZTc1LTRmZjUtOGQxYi1lM2FkOWU5M2Q2NjA=",
"status": {
"__typename": "Status",
"category": "IN_PROGRESS",
"description": null,
"id": "U3RhdHVzOjUzNjlmNjIyLWY1MDctNDBlYi1iZDg3LTBkNDhjMGNhNTNkZA==",
"name": "Pronto"
},
"url": "https://webhook.site/4310f7dc-c356-48ce-b692-c970f035a79d"
},
"successful": true
}
}
}
}
Essa requisição depende do envio da chave de autenticação.
Excluindo um Webhook
Para remover o webhook basta enviar o id do Webhook para a mutation deleteWebhook.
Mutation
mutation DeleteWebhook($input: DeleteWebhookInput!) {
deleteWebhook(input: $input) {
webhook {
successful
}
}
}
Variables
{
"input": {
"id": "V2ViaG9vazo5ZGU0NWE5OS1jZTc1LTRmZjUtOGQxYi1lM2FkOWU5M2Q2NjA="
}
}
Exemplo de Resposta
{
"data": {
"deleteWebhook": {
"webhook": {
"successful": true
}
}
}
}
Essa requisição depende do envio da chave de autenticação.