twilio错误'用户名需要'

时间:2017-07-11 15:05:13

标签: javascript twilio



var express = require('express');
var router = express.Router();
var bodyParser = require('body-parser');
var nodemailer = require('nodemailer');
var TWILIO_TOKEN = "270ff32fe16828869dc30e0c6926fa9e";
var client = require('twilio')(process.env.AC55a59221acb23a5aa6f046740bb73317, process.env.TWILIO_TOKEN);
router.use(bodyParser.urlencoded({extended: true}));
router.use(bodyParser.json());

router.post('/', function(req, res) {
    console.log('this is the req', req.body);
    client.messages.creat({
        to:'+19522209630',
        from:'+17633249718',
        body:'hello World'
    }, function(err, data) {
        if (err) {
            console.log('err', err);
            console.log('data', data);
        }
    });//en d of sendMessage
    res.send(200);
});

module.exports = router;

/Users/moisesmiguelhernandez/Documents/prime/solo_project/node_modules/twilio/lib/rest/Twilio.js:101
    throw new Error('username is required');
    ^

Error: username is required
    at new Twilio (/Users/moisesmiguelhernandez/Documents/prime/solo_project/node_modules/twilio/lib/rest/Twilio.js:101:11)
    at initializer (/Users/moisesmiguelhernandez/Documents/prime/solo_project/node_modules/twilio/lib/index.js:8:10)
    at Object.<anonymous> (/Users/moisesmiguelhernandez/Documents/prime/solo_project/routes/sendMessage.js:6:31)
    at Module._compile (module.js:569:30)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)
    at Module.require (module.js:513:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/Users/moisesmiguelhernandez/Documents/prime/solo_project/server.js:10:19)
    at Module._compile (module.js:569:30)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! solo_project@1.0.0 start: `node server.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the solo_project@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/moisesmiguelhernandez/.npm/_logs/2017-07-11T15_02_02_750Z-debug.log
&#13;
&#13;
&#13;

我收到并且错误表示用户名是必需的。我正在尝试使用twilio。我关注了YouTube视频,我就像他一样。对于如何解决这个问题,有任何的建议吗? P.S索引文件是终端错误消息

8 个答案:

答案 0 :(得分:2)

将这些文件保存到文件夹根目录下的.env文件中

TWILIO_TOKEN = "270ff32fe16828869dc30e0c6926fa9e" TWILIO_ACCOUNT_SID = "AC55a59221acb23a5aa6f046740bb73317"

然后安装 npm install dotenv --save

之后,您可以在文件中使用这些环境变量,如下所示:

require('dotenv').load(); var client = require('twilio')(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_TOKEN);

答案 1 :(得分:2)

我也有同样的问题。

  • npm install dotenv
  • require('dotenv')。config()

然后我添加了我的

TWILIO_ACCOUNT_SID = ***

TWILIO_AUTH_TOKEN = ***

完整代码:

require('dotenv').config();

const accountSid = process.env.ACCOUNT_SID;
const authToken = process.env.AUTH_TOKEN;
const client = require('twilio')(accountSid, authToken);

client.calls
  .create({
    url: 'http://demo.twilio.com/docs/voice.xml',
    to: process.env.CELL_PHONE,
    from: process.env.TWIL_NUM,
  })
  .then(call => console.log(call.sid))
  .catch(err => console.log(err));

答案 2 :(得分:1)

var TWILIO_TOKEN = "270ff32fe16828869dc30e0c6926fa9e";
var TWILIO_ACCOUNT_SID = "AC55a59221acb23a5aa6f046740bb73317";
var client = require('twilio')(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_TOKEN);

@philnash我更改了它并修复了创建错字但终端仍然说“用户名是必需的”

答案 3 :(得分:1)

注意-:这根本不是一个好方法,而只是一种解决方法。我会尽快以正确的方式编辑答案。这只是一个对我有用的技巧。

const client = require('twilio')(<YOUR_ACCOUNT_SID>, <YOUR_ACCOUNT_KEY>);

基本上直接使用键而不是通过任何变量引用。

答案 4 :(得分:0)

Twilio开发者传道者在这里。

除了Champa在评论中指出的creat中的拼写错误,我想我知道你哪里出错了。您的代码目前有:

var client = require('twilio')(process.env.AC55a59221acb23a5aa6f046740bb73317, process.env.TWILIO_TOKEN);

我猜它应该有类似process.env.TWILIO_ACCOUNT_SID的东西。

帐户sid实际上是访问API的用户名,这就是错误消息说明的原因。

让我知道这是否有帮助。

答案 5 :(得分:0)

我今天遇到了这个问题,在运行twilio测试时收到了消息Error: username is required。由于我使用dotenv,我的环境变量有一个.env文件,这就是我犯了错误的地方。我们有另一个应用SIDTOKEN变量的应用,所以我复制了它们并留在export关键字,即export TWILIO_ACCOUNT_SID=...,但如果使用dotenv,不需要export关键字。我删除了export并重新运行我的测试脚本,这一切都有效,例如。

TWILIO_ACCOUNT_SID=***
TWILIO_AUTH_TOKEN=***

答案 6 :(得分:0)

当我们遇到相同的错误时,我正在与一位同事一起工作。我尝试了几乎所有解决方案,但对我没有用(在某种意义上,这里的大多数解决方案是相同的。)

我们如何解决这个问题真是太神奇了:如何?

  

在使用名为.env的文件作为环境变量时,您需要仔细检查创建此文件的位置

  • .env文件必须在您的根目录中创建。这意味着必须在项目文件夹中,而不在项目内部的子文件夹中。
  • 使用时,请确保引用正确的变量。这个错误是 与这个问题有关。例如
// index.js
// this wrong, notice process.env.AC55a59221acb23a5aa6f046740bb73317 in client variable
TWILIO_TOKEN = "270ff32fe16828869dc30e0c6926fa9e";
var client = require('twilio')(process.env.AC55a59221acb23a5aa6f046740bb73317, process.env.TWILIO_TOKEN);
  

这是正确的process.env.TWILIO_ACCOUNT_SID

// .env
TWILIO_ACCOUNT_SID=AC55a59221acb23a5aa6f046740bb73317

Twilio Documentation

对我们犯的错误感兴趣,这是.env文件的错误放置。

答案 7 :(得分:0)

我之前遇到过这个错误,所以添加到上面的答案中确保 .env 文件在根目录中,所有拼写都正确并且使用了 dotenv 包。