Отслеживание входящих сообщений Nexmo

Я использовал приведенный ниже код для отправки сообщения с помощью Nexmo. который успешно работает, и я получаю в ответ уникальный идентификатор сообщения.

$url = 'https://rest.nexmo.com/sms/json?' . http_build_query(
                [
                    'api_key' => env("NEXMO_API_KEY"),
                    'api_secret' => env("NEXMO_API_SECRET"),
                    'to' => $data['to'],
                    'from' => $data['from'],
                    'text' => 'Hi I am sending the message',
                    'callback' => $data['callbackUrl']
                ]
            );
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $response = curl_exec($ch);
        $data = json_decode($response);

Ответ: "message_id": "0D000000890273B7".

После отправки SMS мой клиент ответил на SMS. и я пытаюсь отслеживать сообщения и хранить их в БД. Я установил URL-адрес обратного вызова веб-перехватчиков в настройках Nexmo. который также работает и сбрасывает ответ.

[msisdn] => 121#######
[message_id] => 0B000000CB352009
[to] => 1#########
[message_timestamp] => 2018-04-09 15:04:45
[keyword] => YES
[text] => Hello I am replying the message.

Здесь я заметил, что идентификатор сообщения отличается, поэтому как мы можем отследить, что ответное сообщение связано с этим идентификатором сообщения "0D000000890273B7"? Пожалуйста, помогите мне. Я не могу сопоставить номер телефона, потому что мы не используем номер телефона как уникальный.


person Maneesh Rao    schedule 09.04.2018    source источник


Ответы (1)


Невозможно идеально сопоставить «ответы» SMS, так как в спецификации SMS нет понятия ответа, когда пользователь отправляет ответ на свой телефон, он фактически составляет новое сообщение с идентификатором отправителя сообщения, которое он получил, но не данные распределяются между сообщениями, все, что у вас есть в SMS, это TO, FROM, TEXT и TIMESTAMP. Все остальное является локальным для операционных систем телефона.

person Sam Machin    schedule 09.04.2018
comment
Итак, как мы различаем сообщение, на которое отвечает конкретный клиент, в виде системы чата. - person Maneesh Rao; 09.04.2018
comment
Как я уже сказал, нет идеального способа распознать ответ в SMS, обычный способ сделать это — использовать отдельные телефонные номера для каждого разговора с клиентом. - person Sam Machin; 09.04.2018
comment
Хорошо, можем ли мы отправить дополнительный параметр при отправке смс и вернуться обратно в URL обратного вызова? - person Maneesh Rao; 10.04.2018
comment
Нет, это не сработает, так как нет никакой связи между отправленным сообщением и тем, которое пользователь отправляет обратно. URL-адрес обратного вызова просто используется для уведомления о доставке - person Sam Machin; 10.04.2018