Twilio verify.v2 не может подтвердить новый номер телефона с помощью API - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь подтвердить новый номер телефона для отправки SMS с помощью службы SMS под названием Twilio. Они предоставили некоторые пакеты интеграции API для JAVA разработчиков и команды curl для проверки нового телефонного номера для отправки сообщений.

Моя проблема заключается в том, что я запрашиваю OTP подтверждения с помощью:

 String command ="curl -X POST https://verify.twilio.com/v2/Services/" + SERVICE_SID + "/Verifications --data-urlencode To=+" + phone +
            " --data-urlencode Channel=sms -u " + ACCOUNT_SID + ":" + AUTH_TOKEN;

    Process process = Runtime.getRuntime().exec(command);
    process.getInputStream();

Он отправляет OTP на требуемый телефон. Но когда я отправляю OTP, используя:

        String command ="curl -X POST https://verify.twilio.com/v2/Services/" + SERVICE_SID + "/Verifications --data-urlencode To=+" + phone +
            " --data-urlencode Code="+ otp +" -u " + ACCOUNT_SID + ":" + AUTH_TOKEN;
    Process process = Runtime.getRuntime().exec(command);
    process.getInputStream();

Это дает почтальону 200 OK, указывая, что запрос был успешно выполнен. Но когда я пытаюсь отправить сообщения на этот телефон, появляется сообщение об ошибке, подтверждающее, что номер телефона не подтвержден. И если я проверю проверенные телефонные номера в консоли Twilio, то номер там тоже не виден.

Вот проверка. java (Класс обслуживания) моего приложения с пружинной загрузкой.

package com.cctv.sms.service;
import com.cctv.sms.SmsApplication;
import com.twilio.Twilio;
import com.twilio.rest.api.v2010.account.Message;
import com.twilio.type.PhoneNumber;
import com.twilio.rest.verify.v2.service.Verification;
import com.twilio.rest.verify.v2.Service;
import com.twilio.rest.verify.v2.service.VerificationCheck;
import org.springframework.stereotype.Repository;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import java.util.logging.Logger;

@org.springframework.stereotype.Service
public class VerifyPhone implements VerificationService{
    String ACCOUNT_SID;// Account Security Identifier - sms service
    String AUTH_TOKEN;// Auth Token - sms service
    String SERVICE_SID;// verification service - Security identifier

    String servicePhone;// phone number act as the sender for the sms notifications

    private static Logger LOGGER = Logger.getLogger("InfoLogging");
    public String requestVerification(long phone) throws IOException {
        Properties props = new Properties();
        InputStream inputStream = SmsApplication.class.getClassLoader().getResourceAsStream("application.properties");
        props.load(inputStream);
        ACCOUNT_SID = props.getProperty("not.sid");
        AUTH_TOKEN = props.getProperty("not.auth");
        SERVICE_SID = props.getProperty("not.ser_sid");
        servicePhone = props.getProperty("not.servicePhone");


        String command ="curl -X POST https://verify.twilio.com/v2/Services/" + SERVICE_SID + "/Verifications --data-urlencode To=+" + phone +
                " --data-urlencode Channel=sms -u " + ACCOUNT_SID + ":" + AUTH_TOKEN;

        Process process = Runtime.getRuntime().exec(command);
        process.getInputStream();

        return null ;
    }

    @Override
    public String verify(long phone, int otp) throws IOException {

        String command ="curl -X POST https://verify.twilio.com/v2/Services/" + SERVICE_SID + "/Verifications --data-urlencode To=+" + phone +
                " --data-urlencode Code="+ otp +" -u " + ACCOUNT_SID + ":" + AUTH_TOKEN;
        Process process = Runtime.getRuntime().exec(command);
        process.getInputStream();

        return null;
    }
}

Вот ответ, который я получаю в почтальоне.

{
    "timestamp": "2020-04-21T17:16:55.855+0000",
    "status": 500,
    "error": "Internal Server Error",
    "message": "The number  is unverified. Trial accounts cannot send messages to unverified numbers; verify  at twilio.com/user/account/phone-numbers/verified, or purchase a Twilio number to send messages to unverified numbers.",
    "path": "/api/v1/notifications"
}
...