Portanto, a documentação oficial é muito concisa (ruim!), Principalmente para alguém que não trabalhou com REST / Oauth no passado. Estou usando o Magento 1.8.1 CE.
Alguém pode fornecer um exemplo PHP simples de como usar a API REST do Magento?
Usando o código de exemplo ( http://www.magentocommerce.com/api/rest/introduction.html ), recebo dois erros:
Message: Undefined index: state
Message: Use of undefined constant OAUTH_AUTH_TYPE_URI - assumed 'OAUTH_AUTH_TYPE_URI'
Até agora eu fiz:
- Instale a extensão php oauth
- Crie pelo menos um produto no Magento
- Configure permissões de recurso para o usuário Admin REST para recuperar todos os dados do produto para Admin
- Criar um Consumidor
Qualquer ajuda é muito apreciada.
EDIT : reduzi o problema para (surpresa, surpresa!) OAuth não está funcionando corretamente. Desisti e mudei as funções e os atributos de Convidado para permitir tudo. Depois, testei as coisas para ver se elas estavam funcionando navegando para:
http://yourdomain/api/rest/products
http://yourdomain/api/rest/products/1/images
Tudo está realmente funcionando. Se / quando eu descobrir como lidar corretamente com a autenticação, postarei a resposta.
fonte
Respostas:
Então, @ user2636834 você já descobriu isso?
Lembro que quando estava configurando um cenário de teste, obtive os mesmos erros. Parecia que eu não tinha Oauth instalado:. Então, em suma, eu fiz (executando o Ubuntu e seguindo estas instruções , também executando esse erro ):
Em seguida, adicione
extension=oauth.so
àphp.ini
seção "Extensões dinâmicas". Depois reinicie o ApacheEu tentei os exemplos do site Magento e recebi um erro da API:
Eu tive que adicionar um
'Accept' => '*/*'
cabeçalho à$oauthClient->fetch()
chamada. Depois disso, tudo funcionou bem.Espero que você possa fazer as coisas funcionarem, se ainda não o fez.
fonte
'Accept' => '*/*'
ao$oauthClient->fetch()
e ainda obter uma403 Forbidden
resposta. Outra pessoa disse que resolveu o 403 depois de instalar o SSL. Isso é mesmo necessário? (só para ficar claro, eu tenho Oauth instalado e eu só estou recebendo um erro 403 - há outros erros)