Grant Types Disponíveis
Configurar autenticação: obtendo uma sessão
A API HelloCloud requer que um cliente tenha uma sessão ativa para consumir a API. As sessões são adquiridas por meio de autenticação no servidor OAuth 2, usando um dos tipos de concessão disponíveis.
Configurar tipos de concessão
Antes de consumir a API, você deve primeiro configurar o HelloCloud para conceder acesso a um cliente. HelloCloud 7.10 oferece um painel administrativo, através do qual você pode adicionar clientes e revogar tokens. Para configurar os tipos de concessão, selecione o painel de administração e, em seguida, selecione Clientes e Tokens OAuth2:
Grant Types Disponíveis
Versão HelloCloud | Grant Types Disponíveis |
---|---|
7.10.0 |
Concessão de senha |
7.10.2+ |
Concessão de senha, concessão de credenciais do cliente |
Concessão de credenciais de cliente
Uma concessão de credenciais de cliente é o mais simples de todos os tipos de concessão; essa concessão é usada para autenticar uma máquina ou serviço. Selecione o novo cliente de credenciais do cliente:
Comece a configurar a concessão:
Campo | Descrição |
---|---|
Nome |
Isso facilita a identificação do cliente. |
Alterar segredo |
Define o client_secret que é postado no servidor durante a autenticação. |
É confidencial |
Um cliente confidencial é um aplicativo capaz de manter a senha de um cliente confidencial para o mundo. |
Usuário associado |
Limita o acesso do cliente ao CRM, associando o cliente aos privilégios de segurança de um usuário. |
O 'segredo' será criptografado quando salvo e não estará acessível posteriormente. O 'id' é criado pelo HelloCloud e ficará visível assim que o cliente for salvo.
Autenticação com credenciais do cliente
POST /Api/access_token
Parâmetros obrigatórios
parâmetro | valor |
---|---|
grant_type |
client_credentials |
client_id |
ExemploNomeCliente |
client_secret |
ExemploSecretPassword |
$ch = curl_init();
$header = array(
'Content-type: application/vnd.api+json',
'Accept: application/vnd.api+json',
);
$postStr = json_encode(array(
'grant_type' => 'client_credentials',
'client_id' => '3D7f3fda97-d8e2-b9ad-eb89-5a2fe9b07650',
'client_secret' => 'client_secret',
));
$url = 'https://path-to-instance/Api/access_token';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, $postStr);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$output = curl_exec($ch);
{
"token_type":"Bearer",
"expires_in":3600,
"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjdkOTEyODNhMjc1NDdkNDRlMzNmOTc5ZjVmMGRkYzQwNzg1ZGY5NGFhMWI5MDVlZGNmMzg3NWIxYjJkZDMzNDljZWEyNjZhMTQ2OTE5OWIzIn0.eyJhdWQiOiJzdWl0ZWNybV9jbGllbnQiLCJqdGkiOiI3ZDkxMjgzYTI3NTQ3ZDQ0ZTMzZjk3OWY1ZjBkZGM0MDc4NWRmOTRhYTFiOTA1ZWRjZjM4NzViMWIyZGQzMzQ5Y2VhMjY2YTE0NjkxOTliMyIsImlhdCI6MTUxODE5NTEwMiwibmJmIjoxNTE4MTk1MTAyLCJleHAiOjE1MTgxOTg3MDIsInN1YiI6IjEiLCJzY29wZXMiOltdfQ.EVGuRisoMxSIZut3IWtgOYISw8lEFSZgCWYCwseLEfOuPJ8lRMYL4OZxhu9gxJoGF0nj3yc6SYDPxovrsoj8bMoX38h4krMMOHFQLoizU0k2wAceOjZG1tWKPhID7KPT4TwoCXbb7MqAsYtVPExH4li7gSphJ8wvcWbFdS5em89Ndtwqq3faFtIq6bv1R4t0x98HHuT7sweHUJU40K9WQjbAfIOk8f5Y6T2wassN2wMCBB8CC6eUxLi14n2D6khHvkYvtPbXLHpXSHZWvEhqhvjAeSR5MmMrAth9WDSWUx7alO-ppsZpi8U7-g9Be5p6MRatc25voyTI2iTYbx02FQ",
}
token_type | o valor Bearer token |
---|---|
expires_in |
um número inteiro que representa o TTL do token de acesso |
access_token |
um JWT assinado com a chave privada do servidor de autorização. É necessário incluir isso nos cabeçalhos HTTP, cada vez que você fizer uma solicitação à API |
Você pode armazenar o token ao portador em um banco de dados e usá-lo em suas solicitações assim:
$header = array(
'Content-type: application/vnd.api+json',
'Accept: application/vnd.api+json',
'Authorization: Bearer ' . $your_saved_access_token
);
Concessão de senha
Uma concessão de senha é usada para permitir que os usuários façam login no HelloCloud com um nome de usuário e uma senha. Selecione a nova senha do cliente:
Comece a configurar a concessão:
Nome |
Isso facilita a identificação do cliente. |
Alterar segredo |
Define o client_secret que é postado no servidor durante a autenticação. |
É confidencial |
Um cliente confidencial é um aplicativo capaz de manter a senha de um cliente confidencial para o mundo. |
O 'segredo' será criptografado quando salvo e não estará acessível posteriormente. O 'id' é criado pelo HelloCloud e ficará visível assim que o cliente for salvo.
Autenticação com concessão de senha
POST /Api/access_token
Parâmetros obrigatórios
parâmetro | valor |
---|---|
grant_type |
password |
client_id |
ExemploNomeCliente |
client_secret |
ExemploSecretPassword |
username |
admin |
password |
segredo |
Altere os valores em negrito para corresponder aos detalhes de autenticação escolhidos.
$ch = curl_init();
$header = array(
'Content-type: application/vnd.api+json',
'Accept: application/vnd.api+json',
);
$postStr = json_encode(array(
'grant_type' => 'password',
'client_id' => '3D7f3fda97-d8e2-b9ad-eb89-5a2fe9b07650',
'client_secret' => 'client_secret',
'username' => 'admin',
'password' => 'admin',
));
$url = 'https://path-to-instance/Api/access_token';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, $postStr);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$output = curl_exec($ch);
{
"token_type":"Bearer",
"expires_in":3600,
"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjdkOTEyODNhMjc1NDdkNDRlMzNmOTc5ZjVmMGRkYzQwNzg1ZGY5NGFhMWI5MDVlZGNmMzg3NWIxYjJkZDMzNDljZWEyNjZhMTQ2OTE5OWIzIn0.eyJhdWQiOiJzdWl0ZWNybV9jbGllbnQiLCJqdGkiOiI3ZDkxMjgzYTI3NTQ3ZDQ0ZTMzZjk3OWY1ZjBkZGM0MDc4NWRmOTRhYTFiOTA1ZWRjZjM4NzViMWIyZGQzMzQ5Y2VhMjY2YTE0NjkxOTliMyIsImlhdCI6MTUxODE5NTEwMiwibmJmIjoxNTE4MTk1MTAyLCJleHAiOjE1MTgxOTg3MDIsInN1YiI6IjEiLCJzY29wZXMiOltdfQ.EVGuRisoMxSIZut3IWtgOYISw8lEFSZgCWYCwseLEfOuPJ8lRMYL4OZxhu9gxJoGF0nj3yc6SYDPxovrsoj8bMoX38h4krMMOHFQLoizU0k2wAceOjZG1tWKPhID7KPT4TwoCXbb7MqAsYtVPExH4li7gSphJ8wvcWbFdS5em89Ndtwqq3faFtIq6bv1R4t0x98HHuT7sweHUJU40K9WQjbAfIOk8f5Y6T2wassN2wMCBB8CC6eUxLi14n2D6khHvkYvtPbXLHpXSHZWvEhqhvjAeSR5MmMrAth9WDSWUx7alO-ppsZpi8U7-g9Be5p6MRatc25voyTI2iTYbx02FQ",
"refresh_token":"def50200d2fb757e4c01c333e96c827712dfd8f3e2c797db3e4e42734c8b4e7cba88a2dd8a9ce607358d634a51cadd7fa980d5acd692ab2c7a7da1d7a7f8246b22faf151dc11a758f9d8ea0b9aa3553f3cfd3751a927399ab964f219d086d36151d0f39c93aef4a846287e8467acea3dfde0bd2ac055ea7825dfb75aa5b8a084752de6d3976438631c3e539156a26bc10d0b7f057c092fce354bb10ff7ac2ab5fe6fd7af3ec7fa2599ec0f1e581837a6ca2441a80c01d997dac298e1f74573ac900dd4547d7a2a2807e9fb25438486c38f25be55d19cb8d72634d77c0a8dfaec80901c01745579d0f3822c717df21403440473c86277dc5590ce18acdb1222c1b95b516f3554c8b59255446bc15b457fdc17d5dcc0f06f7b2252581c810ca72b51618f820dbb2f414ea147add2658f8fbd5df20820843f98c22252dcffe127e6adb4a4cbe89ab0340f7ebe8d8177ef382569e2aa4a54d434adb797c5337bfdfffe27bd8d5cf4714054d4aef2372472ebb4"
}
token_type | o valor Bearer token |
---|---|
expires_in |
um número inteiro que representa o TTL do token de acesso |
access_token |
um JWT assinado com a chave privada do servidor de autorização. É necessário incluir isso nos cabeçalhos HTTP, cada vez que você fizer uma solicitação à API |
refresh_token |
uma carga criptografada que pode ser usada para atualizar o token de acesso quando ele expirar. |
Você pode armazenar o token ao portador em um banco de dados e usá-lo em suas solicitações assim:
$header = array(
'Content-type: application/vnd.api+json',
'Accept: application/vnd.api+json',
'Authorization: Bearer ' . $your_saved_access_token
);