Я пытаюсь отправить сообщение через чат Broadcasting API
, Я попробовал это на почте человека, и это работает. Но использование PHP не работает и дает мне false
результат.
Мой пост человек запрос:
Почтальон Заголовки:
И я получаю сообщение успешно:
{
"result": "ok",
"success": true
}
Я пытаюсь достичь этого с помощью кода. Итак, я попробовал:
// Create map with request parameters
$params = array ('chatfuel_token' => 'protected', 'chatfuel_block_name' => 'protected');
// Build Http query using params
$query = http_build_query ($params);
$user_id = "userid";
// Create Http context details
$contextData = array (
'method' => 'POST',
'header' => "Connection: keep-alive \r\n".
"Content-Length: 30 \r\n",
'Content-Type' => 'application/json',
'content'=> $query );
// Create context resource for our request
$context = stream_context_create (array ( 'http' => $contextData ));
// Read page rendered as result of your POST request
$result = file_get_contents (
'https://api.chatfuel.com/bots/protected/users/'. $user_id .'/send', // page url
false,
$context);
Но я получаю:
{
"result": "0",
"success": false
}
Следующий фрагмент PHP соответствует тому, что вы сделали на Postman.
<?php
$request = new HttpRequest();
$request->setUrl('https://api.test.com');
$request->setMethod(HTTP_METH_POST);
$request->setQueryData(array(
'chatfuel_token' => 'tokenid',
'chatfueld_block_name' => 'blok1'
));
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
Просто замените URL и идентификатор токена.
Это может быть сгенерировано через Почтальон.
Как только вы это заработаете, вы можете соответствующим образом настроить длину контента.
Других решений пока нет …