2014-11-30 4 views
3

이 서문을 쓰려면 전에 Twilio를 사용 해보지 않은 Meteor을 처음 사용 했으므로 아마도 어리석은 실수를 저지르고있을 것입니다.Meteor를 사용하여 Twilio를 사용하려고하면 ReferenceError : Twilio가 정의되지 않았습니다.

나는 Twilio API 바인딩을 사용하여 here을 찾았으며 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." 
      } 
     }); 
    } 
}); 
그래서

해당 이벤트가 트리거 될 때, 나는 다음과 같은 오류 받고 있어요 : MRT를 추가하는 외에

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 : twilio - 유성 여기에 이벤트 트리거 및 방법 기능입니다 패키지를 프로젝트에 추가로 설치하지 않았습니다. 어떤 도움이라도 대단히 감사합니다.

답변

4

클라이언트와 서버 모두에서 메소드를 정의했습니다. 그러나 Twilio 기호는 클라이언트에서 노출되지 않습니다 (클라이언트가 알 필요가없는 내용이기 때문에). 따라서이 오류가 발생합니다. sendSMS 메서드 정의를 Meteor.isServer 블록에 넣으면 제대로 작동합니다.

+0

의미가 있습니다. 완벽하게 일했습니다. 고맙습니다! – jonrovira

관련 문제