Неправильный статус ответа twilio WhatsApp api

Я работаю с Twilio WhatsApp API. У меня есть учетная запись песочницы, и я могу отправлять сообщения на номера WhatsApp из Twilio, но я сталкиваюсь с проблемой, что когда сообщения не отправляются получателю, статус, который я получаю от API, такой же, как у меня, когда я получаю успех .

Это ответ, который я получаю от api, ничего не указано об успехе или неудаче.

{
"sid": "xxxxx",
"date_created": "Tue, 08 Jan 2019 09:42:38 +0000",
"date_updated": "Tue, 08 Jan 2019 09:42:38 +0000",
"date_sent": null,
"account_sid": "xxxxxx",
"to": "Whatsapp:xxxxxxx",
"from": "Whatsapp:+xxxxxxx",
"messaging_service_sid": null,
"body": "test",
"status": "queued",
"num_segments": "1",
"num_media": "0",
"direction": "outbound-api",
"api_version": "2010-04-01",
"price": null,
"price_unit": null,
"error_code": null,
"error_message": null,
"uri": "/2010-04-01/Accounts/xxxxxxxxxxxxxx/Messages/xxxxxxxxxxxxxxxxxx.json",
"subresource_uris": {
    "media": "/2010-04-01/Accounts/xxxxxxxxxxxxxxxxxx/Messages/xxxxxxxxxxxxxxxxxxxx/Media.json"
 }
}

Я использую этот API.

Вот мой код, если нужно.

    public function sendWhatsappMsg() {
    if ( ! empty( $this->apiKey ) && $this->apiKey != null && $this->apiKey != '' ) {
        if ($this->apiKey == $_POST['apiKey']) {
            try {
                $to  = $_POST['to'];
                $msg = $_POST['msg'];
                if ( empty( $to ) && empty( $msg ) ) {
                    return array( 'Error' => 'Phone number and message is required!' );
                }
                if ( empty( $to ) ) {
                    return array( 'Error' => 'Phone number is required!' );
                }
                if ( empty( $msg ) ) {
                    return array( 'Error' => 'Message is required!' );
                }
                if (!empty($to) && !empty($msg)){
                    $isVaid = $this->verifyPhoneNumber($to);
                    if ($isVaid['valid'] == false){
                        return array( 'Error' => 'Phone number should be valid!' );
                    }else{
                        $twilio = new Client( $this->sid, $this->token );
                        $message = $twilio->messages
                            ->create( "whatsapp:" . $isVaid['international_format'], // to
                                array(
                                    "from"           => "whatsapp:+14155238886",
                                    "body"           => $msg,
                                    "statusCallback" => "http://adwtpoc.digitalgravity.ae/Api.php?method=sendWhatsappMsgCallback"
                                )
                            );
                        return (array('accountSid'=>$message->accountSid,'messageServiceSid'=>$message->messagingServiceSid,'sid'=>$message->sid,'status'=>$message->status));
                    }
                }
            } //catch exception
            catch ( Exception $e ) {
                echo 'Exception: ' . $e->getMessage();
            }
        }else{
            header("HTTP/1.1 403 Forbidden" );
            die('403 Forbidden!');
        }
    }else{
        return array( 'Error' => 'No Api Key Defined!' );
    }
}

У вас статус в очереди. Вероятно, вам следует опросить его или настроить веб-перехватчик, чтобы получать уведомления о другом статусе. Как и в случае с SMS API.

Yanis 08.01.2019 16:03
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
955
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я отсортировал его, я получал messageSid в ответ, поэтому я использовал другой API, чтобы получить подробную информацию о сообщении по его sid, и я получил ответ, который мне нужен.

Вот код, чтобы получить подробную информацию о сообщении

    public function getMessageStatus($messageSid){
    // Initialize CURL:
    $ch = curl_init('https://api.twilio.com/2010-04-01/Accounts/'.$this->AccountSid.'/Messages/'.$messageSid.'.json');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_USERPWD, $this->AccountSid . ":" . $this->token);

    // Store the data:
    $json = curl_exec($ch);
    curl_close($ch);

    // Decode JSON response:
    return json_decode($json, true);
}

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