Minhas credenciais do sandbox estão retornando “unauthorized”
Boa tarde, @gui_cp. Seja bem-vindo à Nuvem Fiscal.
Sua requisição está incorreta.
A URL para obtenção do token é https://auth.nuvemfiscal.com.br/oauth/token
.
Para mais informações, consulte a nossa documentação:
Bom dia pessoal, estou tentando consultar o CEP para ver a api funcionando, Já consigo obter meu token e já tenho meu client_id e client_secret e estou usando o exemplo do SDK mas esta dando este erro tanto em homologação quanto em produção:
Exception when calling CepApi->consultarCep: [401] Client error: GET https://api.nuvemfiscal.com.br/cep/94445570
resulted in a 401 Unauthorized
response:
Unauthorized
Bom dia, @edubrigoni. Seja bem-vindo à Nuvem Fiscal.
Você está incluindo o scope cep
na sua requisição para obter o token?
Poderia dar mais detalhes dela?
Bom dia, sim estou incluindo como no manual.
$scope = “cep cnpj”;
E como está a sua requisição ao endpoint de consulta de CEP? Você está incluindo o token nela?
Estou usando o exemplo do SDK e não mostra na documentação como passar o token na função
$result = $apiInstance->consultarCep($cep);
Aqui tem um exemplo completo:
Não conseguiu seguindo esses passos?
Boa tarde, não consegui, usei exatamente como no exemplo, mas só funcionou quando fiz na mão usando cURL.
Siga o exemplo deste link:
Se não der certo, cole o seu código PHP para que nós ou alguém possa ter alguma ideia.
Boa tarde segue o meu código;
<?php
require_once(__DIR__ . '../../vendor/autoload.php');
// Obter token a partir das credenciais
$client_id = "meu_client_id";
$client_secret = "meu_client_secret";
$token = get_oauth2_token('https://auth.nuvemfiscal.com.br/oauth/token',
$client_id,
$client_secret,
'cep cnpj');
// Configurar access token OAuth2 para autorização: oauth2
$config = NuvemFiscal\Configuration::getDefaultConfiguration()->setAccessToken($token->access_token);
$apiInstance = new NuvemFiscal\Api\CepApi(
// Se quiser usar um client http customizado, passe um client que implemente `GuzzleHttp\ClientInterface`.
// Isso é opcional, `GuzzleHttp\Client` será usado por padrão.
new GuzzleHttp\Client(),
$config
);
$cep = '94445570'; // string | CEP sem máscara.
try {
$result = $apiInstance->consultarCep($cep);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling CepApi->consultarCep: ', $e->getMessage(), PHP_EOL;
}
function get_oauth2_token($auth_url, $client_id, $client_secret, $scope) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $auth_url);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query(array(
'grant_type' => 'client_credentials',
'scope' => $scope,
)));
$headers[] = "Authorization: Basic " . base64_encode($client_id . ":" . $client_secret);
$headers[] = "Content-Type: application/x-www-form-urlencoded";
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
return json_decode($response);
}
}
?>
Está usando credenciais de produção ou sandbox?
Acho que você poderia verificar em cada passo do seu código PHP o que está sendo retornado, por exemplo, o $token->access_token
.
Se conseguir, envie pra gente esse valor (via mensagem privada, já que é um token de acesso à sua conta).
Recebemos o seu token via privado. Você gerou o token usando credenciais de sandbox, portanto ele só vale para a API sandbox.
Por default o SDK acessa a API de produção. Você deve alterar o host para a API de sandbox, se quiser usar esse token:
$config->setHost('https://api.sandbox.nuvemfiscal.com.br');
Bom dia Wagner, obrigado funcionou. Nuvem Fiscal na veia.
Este tópico foi fechado automaticamente 24 horas depois da última resposta. Novas respostas não são mais permitidas.