Introdução à API REST Magento

8

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.

user2636834
fonte
Você pode usar os exemplos listados aqui para autenticação. magentocommerce.com/api/rest/… . (role para baixo até ver o código) Há um para convidado / cliente e outro para login de administrador. Eles são basicamente os mesmos, apenas o URL chamado é diferente. Eles trabalharam bem para mim.
Marius
Vou dar uma olhada. Tenho convidado trabalhando agora, então estou atrapalhando a autenticação. Obrigado pela dica. Além disso, você teve que criar um arquivo oauth_admin.php? (desculpe se isso é explicado no artigo ligado, mas eu percebi que eu pedir-lhe desde que você tem que trabalhar (:-).
user2636834

Respostas:

2

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 ):

pecl install oauth

Em seguida, adicione extension=oauth.soà php.iniseção "Extensões dinâmicas". Depois reinicie o Apache

Eu tentei os exemplos do site Magento e recebi um erro da API:

"Autenticação / solicitação inválida"

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.

7ochem
fonte
Postei um problema semelhante aqui -> magento.stackexchange.com/questions/63611/… . Eu tentei adicionar 'Accept' => '*/*'ao $oauthClient->fetch()e ainda obter uma 403 Forbiddenresposta. 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)
gtr1971