Так что официальная документация очень краткая (плохая!), Особенно для тех, кто не работал с REST / Oauth в прошлом. Я использую Magento 1.8.1 CE.
Может ли кто-нибудь представить простой пример PHP как использовать REST API Magento?
Используя их пример кода ( http://www.magentocommerce.com/api/rest/introduction.html ), я получаю две ошибки:
Message: Undefined index: state
Message: Use of undefined constant OAUTH_AUTH_TYPE_URI - assumed 'OAUTH_AUTH_TYPE_URI'
До сих пор я сделал:
- Установите расширение PHP oauth
- Создайте хотя бы один продукт в Magento
- Настройте разрешения ресурса для пользователя Admin REST для получения всех данных о продукте для администратора
- Создать Потребителя
Любая помощь очень ценится.
РЕДАКТИРОВАТЬ : я сузил проблему до (сюрприз, сюрприз!) OAuth не работает должным образом. Я сдался и изменил гостевые роли и атрибуты, чтобы разрешить все. Затем я проверил вещи, чтобы увидеть, работают ли они, перейдя к:
http://yourdomain/api/rest/products
http://yourdomain/api/rest/products/1/images
Все действительно работает. Если / когда я выясню, как правильно обращаться с аутентификацией, я выложу ответ.
magento-1.8
api
ce-1.8.1.0
rest
oauth
user2636834
источник
источник
Ответы:
Так @ user2636834 ты уже понял это?
Я помню, когда я настраивал тестовый сценарий, я получал те же ошибки. Казалось, что у меня не было установлено Oauth: O. Короче говоря, я сделал (запустив Ubuntu и следуя этим инструкциям , также столкнулся с этой ошибкой ):
Затем добавьте
extension=oauth.so
вphp.ini
раздел «Динамические расширения». Затем перезапустите ApacheЯ попробовал примеры с сайта Magento и получил ошибку от API:
Мне пришлось добавить
'Accept' => '*/*'
заголовок к$oauthClient->fetch()
звонку. После этого все заработало просто отлично.Надеюсь, что вы можете запустить вещи, если вы еще не сделали.
источник
'Accept' => '*/*'
к$oauthClient->fetch()
и все еще получить403 Forbidden
ответ. Кто-то еще сказал, что они решили 403 после установки SSL. Это действительно необходимо? (просто чтобы быть ясно, у меня установлен Oauth, и я получаю только ошибку 403 - никаких других ошибок)