A API da Yube necessita que a chave de acesso, gerada através da mutation de Login, seja enviada junto às requisições que necessitam de autenticação.
Não esqueça de acessar Primeiros Passos para conhecer os endereços de API e como a API da Yube funciona.
Solicitando chave de acesso
Para conseguir conseguir sua chave de acesso basta você passar as credenciais de acesso para a API através da mutation abaixo.
Mutation
mutation Login($input: LoginInput!) {
login(input: $input) {
token
user {
id
name
email
}
}
}
Variables
{
"input": {
"email": "email address",
"password": "senha text plain"
}
}
Exemplo de Resposta
{
"data": {
"viewer": {
"id": "root_viewer_id",
"user": {
"__typename": "User",
"email": "dev@yube.com.br",
"groups": [
{
"__typename": "Group",
"id": "R3JvdXA6YzA1MWQwYTMtY2IyYy00ZGRkLWJkN2ItMjE2NmUzOTRmOGMz",
"name": "Todo o Time",
"organization": {
"__typename": "Organization",
"id": "T3JnYW5pemF0aW9uOjZkMjdlNmRjLTZkY2EtNDlmZC1iZTZiLWRkYmY0ZjhkOTBjOQ==",
"pipeStatus": [
{
"__typename": "Status",
"category": "IN_PROGRESS",
"description": null,
"id": "U3RhdHVzOjEwYTFlMzFkLWYyMzItNGIyYS05MGZlLTQwY2JhNmVjNjQ5NQ==",
"name": "Convidado"
},
{
"__typename": "Status",
"category": "IN_PROGRESS",
"description": null,
"id": "U3RhdHVzOjQ2NWNhZDBhLTMxZDgtNDU0Zi1iZjcyLWNmNmZkMzE5ZDU5NA==",
"name": "Em Cadastro"
},
{
"__typename": "Status",
"category": "IN_PROGRESS",
"description": null,
"id": "U3RhdHVzOjc2MmQwODk0LThkMmEtNDhjOC1hODQ0LTNkMGU1OGE1NWNiOA==",
"name": "Pronto"
},
{
"__typename": "Status",
"category": "DONE",
"description": null,
"id": "U3RhdHVzOjRiZmE1ZjUyLTA0N2ItNGE5Yy1hYTlkLWQ2NTIzOTIzYTU5MA==",
"name": "Arquivado"
},
{
"__typename": "Status",
"category": "DONE",
"description": null,
"id": "U3RhdHVzOjFhNzllZWZlLWQ2M2QtNDY3Yy1iOGZlLWRmYzhkYjdkZTVmMg==",
"name": "Finalizado"
}
],
"title": "Yube Tecnologia"
}
}
],
"id": "VXNlcjplYWFlNTgxYy03NmI4LTQ3MjAtYmQyMy1jNDhjNGM4MzA4OGY=",
"name": "Yube Desenvolvimento"
}
}
}
}
Enviando requisições autenticadas
Com a chave de acesso (campo "token") da resposta da mutation de Login agora é possível fazer requisições de leitura ou escrita das informações.
Exemplo de como puxar as informações do usuário logado utilizando a ferramenta de linha de comando curl:
curl 'https://api.yube.com.br/'
-H 'Authorization: Bearer YOUR_AUTH_TOKEN'
-d '{"query":""{viewer{iduser{idemailnamemobilePhone}}}""}'
Exemplo utilizando a ferramenta GraphQL Explorer:
Não se esqueça de substituir o YOUR_AUTH_TOKEN pela chave de acesso (token) retornada na resposta da mutation de Login.
Exemplo de Query
{
viewer {
id
user {
id
email
name
mobilePhone
}
}
}
Exemplo de Resposta
{
"data": {
"viewer": {
"user": {
"email": "dev@yube.com.br",
"id": "VXNlcjplYWFlNTgxYy03NmI4LTQ3MjAtYmQyMy1jNDhjNGM4MzA4OGY=",
"mobilePhone": null,
"name": "Yube Desenvolvimento"
}
}
}
}