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! [email protected] start: `node server.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] 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
我收到错误消息,提示需要用户名。我正在尝试使用 twilio。我关注了 YouTube 视频,我也像他一样拥有它。对于如何解决这个问题,有任何的建议吗? P.S 索引文件是终端错误信息
将它们保存到文件夹根目录下的 .env 文件中
TWILIO_TOKEN = "270ff32fe16828869dc30e0c6926fa9e"
TWILIO_ACCOUNT_SID = "AC55a59221acb23a5aa6f046740bb73317"
然后安装
npm install dotenv --save
之后,您可以在文件中使用这些环境变量,如下所示:
require('dotenv');
var client = require('twilio')(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_TOKEN);```
我也有同样的问题。为我解决这个问题的方法是
然后我添加了我的
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));
var TWILIO_TOKEN = "270ff32fe16828869dc30e0c6926fa9e";
var TWILIO_ACCOUNT_SID = "AC55a59221acb23a5aa6f046740bb73317";
var client = require('twilio')(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_TOKEN);
@philnash 我更改了它并修复了创建拼写错误,但终端仍然显示“需要用户名”
注意-:这根本不是一个好方法,而只是一个解决方法。一旦找到正确的方法,我将立即编辑答案。这只是一个在我的案例中有效的技巧。
const client = require('twilio')(<YOUR_ACCOUNT_SID>, <YOUR_ACCOUNT_KEY>);
基本上直接使用键,而不是通过任何变量引用。
这里是 Twilio 开发者布道者。
除了 Champa 在评论中指出的
creat
中的错字之外,我想我知道你错在哪里。您的代码当前有:
var client = require('twilio')(process.env.AC55a59221acb23a5aa6f046740bb73317, process.env.TWILIO_TOKEN);
我猜它应该有类似
process.env.TWILIO_ACCOUNT_SID
的东西。
帐户 sid 实际上是访问 API 的用户名,这就是错误消息中这样说的原因。
请告诉我这是否有帮助。
我今天遇到了这个问题,并在运行 twilio 测试时收到消息
Error: username is required
。由于我使用的是 dotenv,所以我有一个包含环境变量的 .env
文件,这就是我犯错误的地方。我们还有另一个带有 SID
和 TOKEN
变量的应用程序,因此我复制了它们并保留在 export
关键字中,即 export TWILIO_ACCOUNT_SID=...
,但如果使用 dotenv
,则不需要 export
关键字。我删除了 export
并重新运行我的测试脚本,一切正常,例如
TWILIO_ACCOUNT_SID=***
TWILIO_AUTH_TOKEN=***
我和一位同事一起工作时遇到了同样的错误。我尝试了几乎所有的解决方案,但对我不起作用(这里的大多数解决方案在某种意义上都是相同的)。
我们如何解决这个问题真是太神奇了:如何解决?
当您使用名为 .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
对我们犯的错误感兴趣,这是
.env
文件的错误放置。
我之前遇到过这个错误,所以添加到上面的答案中,确保 .env 文件位于根目录中,所有拼写都正确并且使用了 dotenv 包。
我弄清楚了我遇到的问题。启动服务器时,请确保您位于包含 .env 文件的目录中。
我犯的愚蠢错误是,我使用了“SMS_SID:YourSID”,它必须是“SMS_SID = YourSID”。
就我而言,一切都是正确的,除了我使用测试凭证的 account_sid 和 auth_token 而不是 Live 凭证。
如果你使用firebase,你可以将'.env'文件移动到firebase根文件夹,那就没问题了。