2016-06-11 2 views
1

Пытается проверить API Uber Rush (от локального и от Linux-сервера).Uber Rush API Sandbox

Вызов Токен работает - я получаю маркер пытается реализовать пример SANbox:

curl -X "PUT /v1/sandbox/deliveries/{delivery_id}" \ 
    -H "Authorization: Bearer <OAUTH TOKEN>" \ 
    -d "{\"status\":\"en_route_to_pickup\"}" 

с URL https://sandbox-api.uber.com/

и я попробовал тот же запрос с file_get_contents (в PHP)

Так , Я всегда получаю ошибку «405 Метод не допускается»

{"message":"Method not supported for this endpoint.","code":"method_not_allowed"} 

Что мне нужно сделать, чтобы получить доступ к методу из этого примера песочницы https://developer.uber.com/docs/rush/sandbox?

синтаксис Corrent

curl -X "PUT" -H "Authorization: Bearer <TOKEN>" -H "Content-Type: application/json" -d "{\"status\":\"en_route_to_pickup\"}" https://sandbox-api.uber.com/v1/sandbox/deliveries/DELIVERY_ID 
+0

Каков точный вызов file_get_contents, который вы создаете? –

+0

'$ url = 'https://sandbox-api.uber.com/v1/sandbox/deliveries/ID_HERE'; $ headers = array ('Авторизация: Носитель' .TOKEN_HERE); $ options = array ( 'https' => array ( 'header' => $ headers, ), ); $ context = stream_context_create ($ options); $ result = file_get_contents ($ url, false, $ context); ' –

ответ

0

EDIT: обновление, чтобы отразить обе проблемы в вашем вопросе ...

У вас есть несоответствие в ваших запросов и неправильный синтаксис локон.

Вначале ваш запрос CURL указан неверно. Оно должно быть:

curl -X "PUT" -H "Authorization: Bearer <OAUTH TOKEN>" -d "{\"status\":\"en_route_to_pickup\"}" https://sandbox-api.uber.com/v1/sandbox/deliveries/{delivery_id} 

Кроме того, ваш локон команда пытается выдать запрос PUT на uber sandbox PUT API. Однако ваш PHP-код не правильно устанавливает контекст и поэтому, вероятно, выдает запрос GET. Я подозреваю, что сервер поэтому отклоняет запрос как GET, поскольку ему не разрешено выполнять такую ​​операцию.

Чтобы исправить это, см. Bad request using file_get_contents for PUT request in PHP. Это должно дать вам пример того, как передать необходимый контекст для запроса запроса PUT с использованием file_get_contents().

+0

Чтобы быть чистым, я использовал все возможные варианты, чтобы этот запрос работал. Это тоже с методом PUT. $ url = 'https://sandbox-api.uber.com/v1/sandbox/deliveries/ID_HERE'; $ headers = array ('Авторизация: Носитель' .TOKEN_HERE); $ Варианты = Array ( 'HTTPS' => массив ( 'заголовок' => $ заголовки, 'метод' => 'PUT', ), ); $ context = stream_context_create ($ options); $ result = file_get_contents ($ url, false, $ context); –

+0

Я не беспокоюсь о php-коде, я беспокоюсь о том, почему я не могу использовать метод curl. Я получаю этот код здесь [https://developer.uber.com/docs/rush/sandbox](https://developer.uber.com/docs/rush/sandbox) –

+0

@ ЕвгенийИванов Если ваша проблема связана с запросом на завивание, это просто потому, что оно синтаксически неверно. См. Мой отредактированный ответ ... –

Смежные вопросы