Twilio 测试电话号码不起作用

Posted

技术标签:

【中文标题】Twilio 测试电话号码不起作用【英文标题】:Twilio test phone number is not working 【发布时间】:2015-08-12 06:34:56 【问题描述】:

我在解析云上使用 twilio 对我的 iPhone 应用程序进行用户电话身份验证,但是当我调用云代码以从测试电话号码 (+15005550006) 发送代码消息时,它给了我一个错误,提示“来自电话号码 +15005550006 不是您帐户的有效、支持 SMS 的呼入电话号码或短代码。(代码:141,版本:1.7.5)"

到目前为止,我的云代码是:

var twilioAccountSid = 'my-account-sid'; 
var twilioAuthToken = 'my-auth-token';
var twilioPhoneNumber = '+15005550006';
var secretPasswordToken = '12345';

var language = "en";

var twilio = require('twilio')(twilioAccountSid, twilioAuthToken);

Parse.Cloud.define("sendCode", function(req, res) 
    var phoneNumber = req.params.number;
    phoneNumber = phoneNumber.replace(/\D/g, '');

    if (!phoneNumber || (phoneNumber.length != 10 && phoneNumber.length != 11)) return res.error('Invalid Parameters');
    Parse.Cloud.useMasterKey();
    var query = new Parse.Query(Parse.User);
    query.equalTo('username', phoneNumber + "");
    query.first().then(function(result) 
        var min = 1000; var max = 9999;
        var num = Math.floor(Math.random() * (max - min + 1)) + min;

        if (result) 
            result.setPassword(secretPasswordToken + num);
            result.set("language", language);
            result.save().then(function() 
                return sendCodeSms(phoneNumber, num, language);
            ).then(function() 
                res.success();
            , function(err) 
                res.error(err);
            );
         else 
            var user = new Parse.User();
            user.setUsername(phoneNumber);
            user.setPassword(secretPasswordToken + num);
            user.set("language", language);
            user.setACL();
            user.save().then(function(a) 
                return sendCodeSms(phoneNumber, num, language);
            ).then(function() 
                res.success();
            , function(err) 
                res.error(err);
            );
        
    , function (err) 
        res.error(err);
    );
);

Parse.Cloud.define("logIn", function(req, res) 
    Parse.Cloud.useMasterKey();

    var phoneNumber = req.params.phoneNumber;
    phoneNumber = phoneNumber.replace(/\D/g, '');

    if (phoneNumber && req.params.codeEntry) 
        Parse.User.logIn(phoneNumber, secretPasswordToken + req.params.codeEntry).then(function (user) 
            res.success(user._sessionToken);
        , function (err) 
            res.error(err);
        );
     else 
        res.error('Invalid parameters.');
    
);

function sendCodeSms(phoneNumber, code, language) 

    var promise = new Parse.Promise();
    twilio.sendSms(
        to: '+91' + phoneNumber,//.replace(/\D/g, ''),
        from: twilioPhoneNumber,//.replace(/\D/g, ''),
        body: 'Your login code for AnyPhone is ' + code
    , function(err, responseData) 
        if (err) 
            console.log(err);
            promise.reject(err.message);
         else 
            promise.resolve();
        
    );
    return promise;

【问题讨论】:

您好,这里是 Twilio 开发人员宣传员。该电话号码有效,但似乎不是 Twilio 号码。你从哪里复制的?请检查上面没有错别字。 我从他们的博客/文档中复制了它。它对我一点用都没有,所以我改用 Nexmo。 您复制的数字只是一个样本号。您需要使用自己拥有的号码。 好的,所以没有免费的测试号。对吗? 当您创建试用帐户时,您将获得一个免费的测试编号,虽然数量有限,但可以很好地满足您的要求。 【参考方案1】:

您从哪里获得 twilioAccountSid 和 twilioAuthToken?

如果来自https://www.twilio.com/user/account/phone-numbers/getting-started -> “获取 API 凭据”,但它对我也不起作用。

我来自https://www.twilio.com/user/account/voice/dev-tools/test-credentials,它现在对我有用。

【讨论】:

以上是关于Twilio 测试电话号码不起作用的主要内容,如果未能解决你的问题,请参考以下文章

注册 Twilio 电话号码时出现 ngrok 错误

如何从 twilio 跟踪用户消息和用户电话号码到我们的应用程序

使用twilio快速进行电话号码验证时出错

使用 Twilio Client 与 Twilio Video API 哪个更合适?

如何将 +1 添加到用户电话号码 - 通过 Zapier、Webflow 到表格、表格到 Twilio

我的 Twilio 电话号码即使在收到状态码:200 时也不会回复短信,有啥原因吗?