Вопрос

Мне нужно отправить именно это:

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"
 }
}
.

Я никогда не сделал что-то подобное, и я сделал много исследований, но я не мог найти, как отправить эти параметры для этого URL

Я надеюсь, что вы, ребята, можете помочь мне с примером, пожалуйста, наилучшими пожеланиями!

Это было полезно?

Решение

После многих исследований я узнаю, как это сделать ...

1. - Используйте

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

2.- Это на вашей функции

$HttpSocket = new HttpSocket(); 
.

3.- Вот данные, которые вы хотите отправить через пост (в этом примере я буду использовать переменные, которые я использовал .. Вы можете заменить их, добавить больше или удалить некоторые .. Это зависит от информации, которую вы хотите отправить)

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

3.- Вы устанавливаете заголовки

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

4.-json_encode это

 $data = json_encode($data);
.

5.- Где вы отправляете сообщение на?, какие данные?, тип запроса?, сделайте это таким образом

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

* .- Вы можете увидеть ответ, растрескивание этого фрагмента

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

*. - наконец, если вы хотите перенаправить где-то после того, как все сделано .. Сделай это таким образом ...

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

Вы должны иметь что-то вроде этого.

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'));     
.

}

Вот как вы называете эту функцию из другой функции (на всякий случай)

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

Если у вас есть какие-либо вопросы, дайте мне теперь, я буду рад помочь вам;)

Другие советы

Если вы хотите сделать это в PHP, я бы использовал завиток.Следующее непростое, поэтому нет гарантий, что это правильно:

$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;
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top