Obter Token Auth

Estou tentando consumir a api para obter o token via curl do php.
Porém estou tendo o seguindo retorno:
string(75) “{“error”:“invalid_client”,“error_description”:“Invalid client credentials”}”
Teriam um exemplo de consumo via curl ou postman?

O erro indica que o client id que você usou é inválido.
Este tópico da documentação da Nuvem Fiscal mostra como montar a requisição para obter o token:

Lembrando que existem credenciais diferentes para a API em produção e a API sandbox. Se usar uma credencial de produção na API sandbox (ou vice-versa), vai receber a mensagem que você está recebendo.

Se ainda estiver com dúvida, cole aqui a requisição exata que você está tentando fazer, seja no curl ou no Postman, para que possamos tentar identificar se há algum problema e sugerir uma solução. Obviamente, troque o client id e o client secret reais para valores fictícios antes de postar aqui, para não informar suas credenciais publicamente.

Bom dia, Wagner nesse caso o que indica que é teste ou produção? Link, campo?
https://auth.nuvemfiscal.com.br/oauth/token
Estou usando essa url no caso.

Ah sim, desculpe, essa URL é usada para obter o token a partir das credenciais. Nesse caso, é a mesma para ambas as APIs. Com o token gerado é que você precisa usar ele na API certa, ou https://api.nuvemfiscal.com.br ou https://api.sandbox.nuvemfiscal.com.br.

Entendi, mas nesse caso como que consigo um token por exemplo em sandbox, ja que os dados que estou usando é no sandbox e o mesmo esta retornando que não esta correto.
O erro acontece nessa chamada.
https://auth.nuvemfiscal.com.br/oauth/token

Pra conseguir um token para o sandbox, você precisa gerar as credenciais (client id e client secret) para sandbox, e aí solicitar um token chamando essa URL que você passou no domínio auth.nuvemfiscal.com.br.

Se a chamada tem erro, cole aqui a requisição exata que você está tentando fazer, seja no curl ou no Postman, como solicitei acima (trocando o id e secret).

Segue conforme solicitado.

    $url = "https://auth.nuvemfiscal.com.br/oauth/token";
   
    $curl = curl_init();
    
    $post = "grant_type=client_credentials&client_id=$client_id&client_secret=$client_secret&scope=cep%20cnpj%20nfse%20mdfe";
    
    var_dump($post);
    
    curl_setopt_array($curl, array(
      CURLOPT_URL => $url,
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_ENCODING => '',
      CURLOPT_MAXREDIRS => 10,
      CURLOPT_TIMEOUT => 0,
      CURLOPT_FOLLOWLOCATION => true,
      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
      CURLOPT_CUSTOMREQUEST => 'POST',
      CURLOPT_POSTFIELDS => $post,
      CURLOPT_HTTPHEADER => array(
        'Host: auth.nuvemfiscal.com.br',
        'Content-Type: application/x-www-form-urlencoded',
        'Content-Length: 91',
      ),
    ));
    
    $response = curl_exec($curl);

A princípio parece certo. Tem certeza que o client_id que você está colocando é exatamente o que foi fornecido nas credenciais? Consegue inspecionar a requisição HTTP pra ver se o client_id correto está lá?

Bom dia,
As informações do client estão corretas na chamada.
Não teria como saber o que está chegando na API de voces?

Qual é o e-mail da sua conta na Nuvem Fiscal?
Qual é o client id que você está usando (pode colocar o início dele aqui, não precisa colocar tudo).

Olá @antonio,

Segue um exemplo de requisição via curl:

curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d "grant_type=client_credentials&client_id=seu-client-id&client_secret=seu-client-secret&scope=cep%20cnpj%20nfse" https://auth.nuvemfiscal.com.br/oauth/token

Favor testar substituindo os parâmetros client_id e client_secret pelas suas credenciais obtidas no Console da Nuvem Fiscal. Caso continue recebendo um erro, favor adicionar o parâmetro -v (ou --verbose) ao curl e postar aqui a saída do comando (ocultando suas credenciais, obviamente).

Bom dia,
Efetuei o teste e funcionou a chamada.
Vocês teriam um exemplo no postman para que eu possa importar, ou curl php?

Não tem muito segredo, é só usar os mesmos parâmetros que foram informados. No Postman precisa informar o método POST e a URL, o header de content-type e o conteúdo da mensagem.

Havia pedido detalhes de com você estava fazendo com o Postman, um print de tela, algo assim, para a gente tentar identificar o que você está fazendo de errado.


Segue confirme solicitado

A imagem mostra que a URL que você está acessando está diferente. Parece que você inverteu a ordem dos nomes:

image

Aparentemente você colocou &<seu-client-id>=$client_id, o que não faz muito sentido.
O certo é client_id=<seu-client-id>, ou seja, o texto client_id à esquerda (sem o cifrão), um igual (=) e então o seu client id.

O método deve ser POST, não GET. Qual foi o erro que você recebeu na requisição acima? Coloque o erro também, facilita o suporte.

Alterei para post.
Apenas fica solicitando requisição e não retorna. Poderiam me mandar um print de uma requisição do postman de voces?

Segue a nossa requisição via Postman.
Note que usei seu próprio client_id e client_secret, acabou vazando na imagem acima. Recomendo que você apague essas credenciais imediatamente no Console da Nuvem Fiscal e crie outra.

o que tem na aba header?

Segue a imagem da aba Headers. É tudo automático, não foi mexido em nada nessa aba.
Suas credenciais ainda estão válidas.