Question

Je dois envoyer exactement ceci:

POST http://api.outbound.io/api/v1/identify
Content-Type: application/json
{
 "api_key": "MY_API_KEY",
 "user_id": "MY_UNIQUE_USER_ID",
 "traits" : {
    "email" : "dhruv@outbound.io",
    "name" : "Dhruv Mehta",
    "phone" : "650xxxyyyyy"
 }
}

Je n'ai jamais fait quelque chose comme ça et j'ai fait beaucoup de recherches, mais je n'ai pas pu trouver comment envoyer ces paramètres à cette URL

J'espère que vous pouvez m'aider avec un exemple s'il vous plaît, meilleures salutations!

Était-ce utile?

La solution

Après beaucoup de recherches, je découvre comment le faire ...

1.- Utilisez

App::uses('HttpSocket', 'Network/Http'); // you should put this on your controller

2.- Ceci sur votre fonction

$HttpSocket = new HttpSocket(); 

3.- Voici les données que vous souhaitez envoyer via Post (dans cet exemple, je vais utiliser les variables que j'ai utilisées .. Vous pouvez les remplacer, ajouter plus ou supprimer certaines .. Cela dépend de l'info que vous voulez envoyer)

$data = array(
           "api_key" => "API KEY",
           "user_id" => $idUser,
           "event" => "other",
           "extra" => array(
                          "course" => $course,
                          "price"=> $price )
               );

3.- Vous définissez les en-têtes

$request = array(
        'header' => array('Content-Type' => 'application/json',
        ),
    );

4.-json_encode IT

 $data = json_encode($data);

5.- Où envoyez-vous le poste à?, quelles données ?, Type de demande ?, Faites-le de cette façon

$response = $HttpSocket->post('http://api.yourweburl.com/api/', $data, $request);

* .- Vous pouvez voir la réponse Définir ce snippet

//pr($response->body());

* .- Enfin si vous voulez rediriger quelque part après que tout soit fait. Faites-le de cette façon ...

$this->redirect(array('action' => 'index'));

Vous devriez avoir quelque chose comme ça.

public function actiontooutbound($idUser, $course, $price){
 $HttpSocket = new HttpSocket();

    $data = array(
           "api_key" => "API KEY",
           "user_id" => $idUser,
           "event" => "other",
           "extra" => array(
                          "course" => $course,
                          "price"=> $price )
               );

    $request = array(
        'header' => array(
            'Content-Type' => 'application/json',
        ),
    );
    $data = json_encode($data);
    $response = $HttpSocket->post('http://api.outbound.io/api/v1/track', $data, $request);
   // pr($data);
    //pr($response->body());
   $this->redirect(array('action' => 'index'));     

}

Voici comment vous appelez cette fonction d'une autre fonction (juste au cas où)

$this->actiontooutbound($idUser, $course, $price); 

Si vous avez des questions, laissez-moi maintenant, je serai heureux de vous aider;)

Autres conseils

Si vous voulez le faire dans PHP, j'utiliserais Curl.Ce qui suit n'est pas testé, donc aucun ne garantit que c'est correct:

$json = array(
    'api_key' => 'My_API_KEY',
    'user_id' => 'MY_UNIQUE_USER_ID',
    'traits' => array(
          'email' =< 'dhruv@outbound.io',
          'name' => 'Dhrub Mehta',
          'phone' => '650xxxyyyyy'
     )
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADERS, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_URL, 'http://api.outbound.io/api/v1/identify');
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($json));
curl_setopt($ch, CURLOPT_POST, 1);

$results = curl_exec($ch);
if (curl_errno($ch)) {
    debug(curl_error($ch));
} else {
    curl_close($ch);
}

return $results;

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top