Vamos passo a passo aqui. Parece que você está tentando usar o OAuth apenas para autenticação, mas para poder fazer isso, é necessário obter o token de acesso, que será usado para autenticar quando você fizer suas chamadas de API.
Como está usando o OAuth versão 1, para obter o token de acesso, faça o seguinte:
- Primeiro, configure um aplicativo, faça uma chamada para o site para obter o token de solicitação (credenciais temporárias) usando a ID do cliente e o segredo do aplicativo
- Segundo, ligue para o site para autorizar o aplicativo com o token de solicitação desde o primeiro passo (voltado para o usuário, veja abaixo).
- Terceiro, após a conclusão da autorização, você faz uma ligação para o site para obter o token de acesso (agora que o aplicativo foi autorizado)
Eu recomendo usar o Postman para as primeiras etapas, porque elas precisam ser concluídas apenas uma vez. O Postman também manipulará a geração de timestamp
, nonce
e oauth signature
, portanto, se você não estiver usando uma biblioteca OAuth, deverá usar absolutamente o Postman. Depois de ter seu token de acesso, você poderá fazer chamadas via CURL sem nenhuma biblioteca.
https://www.getpostman.com/
Primeira etapa (aplicativo de configuração)
Instale o plug-in WP OAuth 1, ative e vá para o item de menu em Usuários> Aplicativos . Adicione um novo aplicativo, preencha o nome e a descrição. Para retorno de chamada, o URL para o qual redirecionar o usuário (após a autorização) ou oop
fluxo Out-of-Band que será redirecionado para uma página interna que exibe o token do verificador (em vez de redirecionar).
https://github.com/WP-API/OAuth1/blob/master/docs/basics/Registering.md
Para prosseguir para a segunda etapa, é necessário fazer uma chamada para o seu site, usando o ID do cliente e o Segredo do cliente do do aplicativo criado, para obter credenciais temporárias (Request Token).
Abra o Postman, crie uma nova chamada para http://website.com/oauth1/request
, clique na guia Autorização, selecione OAuth 1.0 no menu suspenso, digite a Chave do cliente, Segredo do cliente, defina o método de assinatura como HMAC-SHA1
, habilite adicionar parâmetros ao cabeçalho, codifique a assinatura oauth e clique em Atualizar solicitação
O Postman gera automaticamente a assinatura, o nonce e o carimbo de data e hora para você e os adiciona ao cabeçalho (você pode visualizar na guia Cabeçalhos).
Clique em Enviar e você deverá obter uma resposta que inclua oauth_token
e oauth_token_secret
:
Esses valores serão usados na próxima etapa para autorizar o aplicativo em sua conta de usuário do WordPress.
Segunda etapa (autorizar inscrição)
A etapa de autorização precisa ser concluída apenas uma vez; essa etapa é voltada para o usuário e aquela que todos estão familiarizados. Esta etapa é necessária porque você está usando o OAuth1 e o aplicativo precisa estar associado a uma conta de usuário do WordPress. Pense em quando um site permite que você faça login no Facebook ... eles o direcionam para o Facebook onde você faz login e clica em "Autorizar" ... isso precisa ser feito, apenas através do seu site WordPress.
Eu recomendo usar o navegador da Web para esta etapa, pois você pode facilmente definir as variáveis no URL, e isso fornece a página "Autorizar" para autorizar o aplicativo.
Abra seu navegador da web e digite o URL do seu site, assim:
http://website.com/oauth1/authorize
Agora adicione este URL oauth_consumer_key
(ID do cliente) oauth_token
e oauth_token_secret
(da etapa anterior). No meu exemplo, este é o URL completo:
http://website.com/oauth1/authorize?oauth_consumer_key=TUPFNj1ZTd8u&oauth_token=J98cN81p01aqSdFd9rjkHZWI&oauth_token_secret=RkrMhw8YzXQljyh99BrNHmP7phryUvZgVObpmJtos3QExG1O
Depois de clicar em Autorizar, você receberá outra tela com o token de verificação. No meu exemplo, este é o token de verificação retornadoE0JnxjjYxc32fMr2AF0uWsZm
Terceira etapa (obter token de acesso)
Agora que autorizamos o aplicativo, precisamos fazer uma última chamada para obter o Token de Autorização, que será usado para fazer todas as suas chamadas de API. Assim como o primeiro passo, vou usar o Postman (porque é necessário que a assinatura seja o HMAC-SHA1) e torna 100x mais fácil concluir essas etapas.
Abra o Postman novamente e altere o URL para http://website.com/oauth1/access
Certifique-se de adicionar o Token e o Token Secret (valores da primeira etapa) e clique em Params para mostrar as caixas abaixo da URL. À esquerda, digite oauth_verifier e à direita, digite o código da segunda etapa, o Token de Verificação
Certifique-se de clicar em Solicitação de atualização, clique em Enviar e você deverá receber uma resposta novamente com ... oauth_token
e oauth_token_secret
é com isso que você precisa fazer suas chamadas de API! Descarte os originais da etapa 1, salve-os no seu código ou em outro lugar seguro.
Você pode fazer uma chamada de API ao seu site, definindo os cabeçalhos com o token retornado e o segredo do token.
Você pode passar isso de várias maneiras, via cabeçalho de autorização, nos parâmetros GET ou POST (se codificado como application / x-www-form-urlencoded). Lembre-se de que DEVE passar a assinatura, o carimbo de data e hora e o nonce. Não sabia quanto tempo essa resposta levaria, então atualizarei isso amanhã com um exemplo de como fazer isso com seu código.
Eu recomendo fortemente a instalação do log da API Rest, para que você possa visualizar o log das chamadas da API e ver o que foi enviado, retornado etc. Isso ajudará na depuração tremendamente.
https://github.com/petenelson/wp-rest-api-log