Twillio - получить содержимое входящих SMS - PullRequest
1 голос
/ 17 января 2020

Я следую Руководству Twillio по реагированию на входящие SMS .

Все работает как положено. Я получаю веб-крючок, и ответ отправляется на проверенный номер (я использую пробную учетную запись).

Проблема, с которой я сталкиваюсь, заключается в получении содержимого входящего сообщения. Я пытался получить содержимое через $_POST и php://input, но оба они пусты. Я хочу получить содержимое для отправки на наш информационный почтовый ящик.

Это мой replyToSMS. php:

<?php
require __DIR__ . '/twilio-php-master/src/Twilio/autoload.php';
use Twilio\TwiML\MessagingResponse;

$rest_json = file_get_contents("php://input");
$sms = json_decode($rest_json, true);


$fh = fopen("log_post.txt","w");
foreach($sms as &$item) {
    fwrite($fh, $item) or die("died");
}
fclose($fh);

$response = new MessagingResponse();
$response->message("The Robots are coming! Head for the hills!");
print $response;

?>

Я подписался на ТАК и предложения евангелиста Twillio, но я не смог найти способ, чтобы содержимое было видно на уровне кода php, а не на уровне XML

Чего мне здесь не хватает?

1 Ответ

1 голос
/ 18 января 2020

Большое спасибо @ceejayoz, который указал на ответ. В документах упоминается, что $_REQUEST['Body'] содержит содержимое входящего сообщения.

Так что его нет ни в $_POST, ни в php://input. Он находится в $_REQUEST, который является объектом, который содержит все данные, которые отправляет Twillio webhook при отправке запроса API на конечную точку вашего сервера.

Это поля, которые содержит объект Request:

ApiVersion: "2010-04-01"
SmsSid: "**********************************************"
SmsStatus: "received"
SmsMessageSid: "*******************************************"
NumSegments: "1"
From:"+1*************"
ToState: "NY"
MessageSid"***************************************"
AccountSid: "*********************************"
ToZip: ""
FromCountry: "US"
ToCity: ""
FromCity: ""
To: "+1**********"
FromZip: ""
Body: "Test"
ToCountry: "US"
FromState: ""
NumMedia: "0"
...