Esta dica é bem rápida, no entanto que pode nos poupar algumas boas horas de debug e análise.
Se você estiver coletando dados de pedidos no WooCommerce via API REST, e se deparar com o erro 401, conforme abaixo:
Primeiramente: não se desespere!
Antes de mais nada, verifique se as credenciais e permissões (consumer key e consumer secret) estão de acordo, e caso positivo, vá e veja como se encontra seu .htaccess (apache users)
Ele deverá estar da seguinte maneira:
1 2 3 4 5 6 7 8 9 10 | # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress |
O que causa o problema?
Este tipo de comunicação utiliza a autenticação básica, e neste caso muito provavelmente a configuração do servidor não está permitindo que, na requisição, a variável $_SERVER[‘HTTP_AUTHORIZATION’] esteja sendo populada com os dados de usuário e senha por meio das variáves $_SERVER[‘PHP_AUTH_USER’] e $_SERVER[‘PHP_AUTH_PW’].
Isso faz com que o erro 401 ocorra. E colocando a regra de reescrita, como na linha 5 do código logo acima, habilita que haja a população de dados de acordo com a explicação do parágrafo anterior.
Desta maneira, o acesso por meio de autenticação básica voltará a funcionar!
Espero que lhe ajude! Dúvidas, sugestões e críticas são sempre bem vindos!
Valeu!