尝试将 Twilio 与 Meteor 一起使用,ReferenceError: Twilio is not defined

Posted

技术标签:

【中文标题】尝试将 Twilio 与 Meteor 一起使用,ReferenceError: Twilio is not defined【英文标题】:Trying to use Twilio with Meteor, ReferenceError: Twilio is not defined 【发布时间】:2015-01-28 10:46:22 【问题描述】:

首先,我是 Meteor 的新手,以前从未使用过 Twilio,所以我可能只是在某个地方犯了一个愚蠢的错误。

我正在使用 here 找到的 Twilio API 绑定,并尝试获取一个简单的 sn-p 代码,用于在 Meteor.methods 函数中发送 SMS 消息。下面是事件触发器和方法函数:

if (Meteor.isClient) 
    Template.twilioPlayground.events(
        "click button": function() 
            Meteor.call("sendSMS");
        
    );


Meteor.methods(
    sendSMS: function () 
        twilio = Twilio('i put my account sid here', 'and my auth token here');
        twilio.sendSms(
            to:'+7199634882', 
            from: '+17194530451', 
            body: 'This is a test'
        , function(err, responseData)  //this function is executed when a response is received from Twilio
            if (!err) 
                console.log(responseData.from); // outputs "+14506667788"
                console.log(responseData.body); // outputs "word to your mother."
            
        );
    
);

因此,当触发该事件时,我收到以下错误:

ReferenceError: Twilio is not defined
at Meteor.methods.sendSMS (http://localhost:3000/myTodoApp.js?8ae55884eab4c6a28ef9da8344fcf0b9d15c24ac:194:18)
at http://localhost:3000/packages/ddp.js?1f971b2ac9f4bdab7372cb5098ed1e26ff98dfb2:4239:25
at _.extend.withValue (http://localhost:3000/packages/meteor.js?61916b1060b33931a21f104fbffb67c2f3d493c5:945:17)
at _.extend.apply (http://localhost:3000/packages/ddp.js?1f971b2ac9f4bdab7372cb5098ed1e26ff98dfb2:4230:54)
at _.extend.call (http://localhost:3000/packages/ddp.js?1f971b2ac9f4bdab7372cb5098ed1e26ff98dfb2:4108:17)
at Object.Template.twilioPlayground.events.click button (http://localhost:3000/myTodoApp.js?8ae55884eab4c6a28ef9da8344fcf0b9d15c24ac:106:20)
at null.<anonymous> (http://localhost:3000/packages/blaze.js?77c0809654ee3a10dcd5a4f961fb1437e7957d33:3103:18)
at http://localhost:3000/packages/blaze.js?77c0809654ee3a10dcd5a4f961fb1437e7957d33:2371:30
at Object.Blaze._withCurrentView (http://localhost:3000/packages/blaze.js?77c0809654ee3a10dcd5a4f961fb1437e7957d33:2029:12)
at null.<anonymous> (http://localhost:3000/packages/blaze.js?77c0809654ee3a10dcd5a4f961fb1437e7957d33:2370:26)

除了将 mrt:moment 和 mrt:twilio-meteor 包添加到项目中之外,我没有再做任何设置。非常感谢任何帮助。

【问题讨论】:

【参考方案1】:

您在客户端和服务器上都定义了您的方法。但是Twilio 符号甚至没有暴露在客户端上(因为它是客户端不需要知道的)。因此,您会收到此错误。将您的 sendSMS 方法定义放入 Meteor.isServer 块中,它应该可以正常工作。

【讨论】:

有道理。工作完美。谢谢! 正确。谢谢。

以上是关于尝试将 Twilio 与 Meteor 一起使用,ReferenceError: Twilio is not defined的主要内容,如果未能解决你的问题,请参考以下文章

如何将 select2 与 Meteor 一起使用?

将 GCM 与 Meteor 一起使用

将 Summernote 编辑器与 Meteor 一起使用

谷歌地图根本无法与 Meteor 一起使用 - iOS

无法让 Twilio 应用程序与 ngrok 一起正常工作

如何在 Meteor 中使用`moment.js`?