2016-02-27 1 views
0

Je suis en train de convertir cette commande en boucle php:Convertir cURL PHP cURL

curl -X POST "https://onfleet.com/api/v2/tasks"  -u "456798b4f32516d4c75cf80bacc6f32a:"  -d '{"destination":{"address":{"unparsed":"2829 Vallejo St, SF, CA, USA"},"notes":"Small green door by garage door has pin pad, enter *4821*"},"recipients":[{"name":"Blas Silkovich","phone":"+16505554481","notes":"Knows Neiman, VIP status."}],"completeAfter":1455151071727,"notes":"Order 332: 24oz Stumptown Finca El Puente, 10 x Aji de Gallina Empanadas, 13-inch Lelenitas Tres Leches","autoAssign":{"mode":"distance"}}' 

peut-elle aider quelqu'un s'il vous plaît?

+0

Vous devez utiliser [ 'curl'] (http://php.net/manual/en/ book.curl.php) ou si vous ne souhaitez pas utiliser une nouvelle extension, vous pouvez utiliser ['file_get_contents'] (http://php.net/manual/fr/function.file-get-contents.php) – Kamehameha

+0

Continuez à essayer ... – Trix

Répondre

2

Vous pouvez utiliser le Client URL Library (cURL). Le -u définit le nom d'utilisateur (sans mot de passe), utilisez donc CURLOPT_USERPWD. -d définit les données utilisent donc CURLOPT_POSTFIELDS:

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'https://onfleet.com/api/v2/tasks'); 
curl_setopt($ch, CURLOPT_USERPWD, 'xxxxxxxxxxxx:'); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"destination":{"address":{"unparsed":"2829 Vallejo St, SF, CA, USA"},"notes":"Small green door by garage door has pin pad, enter *4821*"},"recipients":[{"name":"Blas Silkovich","phone":"+16505554481","notes":"Knows Neiman, VIP status."}],"completeAfter":1455151071727,"notes":"Order 332: 24oz Stumptown Finca El Puente, 10 x Aji de Gallina Empanadas, 13-inch Lelenitas Tres Leches","autoAssign":{"mode":"distance"}}'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

$result = curl_exec($ch); 

curl_close($ch); 
print_r($result); 
+0

Merci jksn.co, ça marche :) – Hyacinthe

0

Voici ce que je fais avec Curl + PHP:

<?php 

    //Onfleet API credentials 
    $username = 'XXXX'; 
    $api = '456798b4f32516d4c75cf80bacc6f32a'; 

    // Apply custom curl request to url 
    $url = "https://onfleet.com/api/v2/tasks"; 

    // Give parameters 
    $fields = array(
    'destination'=> '2829 Vallejo St, SF, CA, USA', 
    'recipients'=> 'Blas Silkovich' 
    ); 

    // intiate curl request 
    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL, $url); 
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($curl, CURLOPT_USERPWD, $api); 
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
    curl_setopt($curl, CURLOPT_ENCODING, ""); 
    curl_setopt($ch,CURLOPT_GETFIELDS,$params); 

    // set the number of post fields 
    curl_setopt($ch,CURLOPT_POST, $fields); 
    // set the fields 
    //execute post 
    $result = curl_exec($ch); 

    print_r($result); 

    //close connection 
    curl_close($ch); 

?> 

Je suis en train d'utiliser l'API Onfleet. Apparemment, j'ai besoin de passer un tableau dans le tableau params selon l'exemple curl request et Onfleet Docs: http://docs.onfleet.com/docs/tasks

Qu'en pensez-vous?

+0

Vous avez juste besoin de coder JSON la variable de champ $ - http://php.net/manual/fr/function.json-encode.php –

+0

Avez-vous essayé d'encoder: curl_setopt ($ ch, CURLOPT_POST, json_encode ($ f champs)); –

0

Voici la mise en œuvre complète propre:

<?php 

    //Onfleet API credentials 
    $username = 'xxxxxx'; 
    $api = 'xxxxxxxxxxxxxxxxxxxxx'; 

    $url = "https://onfleet.com/api/v2/tasks"; 

    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL, $url); 
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($curl, CURLOPT_USERPWD, $api); 
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
    curl_setopt($curl, CURLOPT_ENCODING, ""); 
    curl_setopt($curl, CURLOPT_POST, true); 
    curl_setopt($curl, CURLOPT_POSTFIELDS, '{"destination":{"address":{"unparsed":"2829 Vallejo St, SF, CA, USA"},"notes":"Small green door by garage door has pin pad, enter *4821*"},"recipients":[{"name":"Blas Silkovich","phone":"+16505554481","notes":"Knows Neiman, VIP status."}],"completeAfter":1455151071727,"notes":"Order 332: 24oz Stumptown Finca El Puente, 10 x Aji de Gallina Empanadas, 13-inch Lelenitas Tres Leches","autoAssign":{"mode":"distance"}}'); 

    $result = curl_exec($curl); 

    curl_close($ch); 
    print_r($result); 

?>