2015-09-21 3 views
3

Я использую Postmates API для своего книжного магазина. Я использую их тестовые учетные данные, но я не знаю, как их использовать. Прошу вас посоветовать, как я могу сделать основной вызов api. Я использую PHP. Я хочу отправить почтовые данные с помощью Curl СпасибоPostmate API не работает

<?php 
 
    $url = "https://api.postmates.com/v1/customers/my-customer-key/delivery_quotes"; 
 
    $uname = "my-api-key"; 
 
    $pwd = null; 
 
    $data = array(
 
     'dropoff_address' => '20 McAllister St, San Francisco, CA 94102', 
 
     'pickup_address' => '101 Market St, San Francisco, CA 94105', 
 
    ); 
 

 
    $ch = curl_init(); 
 

 
    curl_setopt($ch, CURLOPT_URL, $url); 
 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded')); 
 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
 
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
 
    curl_setopt($ch, CURLOPT_USERPWD, "$uname:$pwd"); 
 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
 
    curl_setopt($process, CURLOPT_POST, 1); 
 
    curl_setopt($process, CURLOPT_POSTFIELDS, $data); 
 
    
 
     $output = curl_exec($ch); 
 
     if (curl_errno($ch)) { 
 
      echo 'error:' . curl_error($ch); 
 
     } 
 
     curl_close($ch); 
 

 
     echo $output; 
 
?>

+0

Можете ли вы предоставить ссылку на «postmates», чтобы спасти людей, пытающихся выследить их? –

+0

Это [это] (https://postmates.com/developer/docs)? Документация выглядит неплохо - есть ли конкретная проблема, с которой вы столкнулись? –

+0

Я начинаю, и я хочу знать, как я могу аутентифицироваться на постмате? Я использую cUrl для отправки запросов, и я также устанавливаю заголовки, но я получаю «invalid_authorization_error». Может, пожалуйста, покажите мне пример кода в php? –

ответ

2

От the documentation:

Postmates API требует проверки подлинности с помощью заголовков HTTP Basic Auth. Ключ API должен быть включен как имя пользователя. Пароль должен быть пустым.

Это означает, что вам нужно сделать что-то как следующее:

$curl = curl_init(); 
$url = "http://whatever-this-should-be"; 
curl_setopt($curl, CURLOPT_URL, $url); 
$username = "your-api-key-goes-here"; 
$password = ""; // leave this blank, as per the doc 
curl_setopt($curl, CURLOPT_USERPWD, "$username:$password"); 
$res = curl_exec($curl); 

Вам нужно настроить другие параметры свертыванию для обработки вывода и т.д., но это ядро ​​того, что вы» Мне нужно.

Возможно, вы также захотите проверить this library, если хотите сделать все это на чуть более высоком (то есть более легком) уровне.

ОБНОВЛЕНИЕ: Имейте в виду, что это всего лишь образец кода. Я бы не стал защищать ваш ключ API в вашем файле сценария для производственного кода!

+0

Спасибо за этот код я изменил мой код, но теперь я получаю эту ошибку строку (394) «HTTP/1.1 100 Continue HTTP/1.1 400 BAD REQUEST Content-Type:. APPLI cation/json –

+0

Над этим моим обновленным кодом. –

1

Я сделал этот код, и он работает нормально. Спасибо всем за ответ на мой вопрос.

$url = "https://api.postmates.com/v1/customers/my-customer-id/delivery_quotes"; 

    $uname = "my-api-key"; 
    $pwd = null; 

    $process = curl_init($url); 
    curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded','Accept: application/json')); 
    curl_setopt($process, CURLOPT_HEADER, 1); 
    curl_setopt($process, CURLOPT_USERPWD, $uname . ":" . $pwd); 
    curl_setopt($process, CURLOPT_TIMEOUT, 30); 
    curl_setopt($process, CURLOPT_POST, 1); 
    curl_setopt($process, CURLOPT_POSTFIELDS, "dropoff_address=20 McAllister St, San Francisco, CA 94102&pickup_address=101 Market St, San Francisco, CA 94105"); 
    curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE); 
    curl_setopt($process, CURLOPT_SSL_VERIFYPEER, false); 
    $return = curl_exec($process); 

    curl_close($process); 

    var_dump($return); 

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

  • Нет связанных вопросов^_^