2017-08-13 6 views
0

私はSMSを送信するためにtwilioノードを使用しています。しかし、私はエラーを取得しています:ここでtwilioは流星で動作しないSMSを送信します

sendSms is not defined

がサーバフォルダ内の私のtwilioファイルです:私はtwilioを慰めるとき

import twilio from "twilio"; 
sms = { 
    accountSid: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 
    authToken: "your_auth_token" 
}; 

const client = new twilio(sms.accountSid, sms.authToken); 
console.log('client twilio *********** ',client) 
sendSms=(phoneNum,randomNum)=> { 
    client 
    .sendSms({ 
     body: "MicroTM one time password:" + randomNum, 
     to: phoneNum, 
     from: "+16062631146" 
    }) 
    .then((message, err) => { 
     if (!err) { 
      console.log(message); 
     } else { 
      console.log(err); 
     } 
    }); 
} 

今、私はsendSms機能を見つけることができませんでした。ここ はログです:ここでは

client twilio *********** Twilio { 
I20170813-08:14:44.200(5.5)? username: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 
I20170813-08:14:44.201(5.5)? password: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 
I20170813-08:14:44.202(5.5)? accountSid: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 
I20170813-08:14:44.204(5.5)? httpClient: {}, 
I20170813-08:14:44.204(5.5)? region: undefined, 
I20170813-08:14:44.205(5.5)? _accounts: undefined, 
I20170813-08:14:44.206(5.5)? _api: undefined, 
I20170813-08:14:44.207(5.5)? _chat: undefined, 
I20170813-08:14:44.208(5.5)? _fax: undefined, 
I20170813-08:14:44.209(5.5)? _ipMessaging: undefined, 
I20170813-08:14:44.209(5.5)? _lookups: undefined, 
I20170813-08:14:44.210(5.5)? _monitor: undefined, 
I20170813-08:14:44.210(5.5)? _notify: undefined, 
I20170813-08:14:44.211(5.5)? _preview: undefined, 
I20170813-08:14:44.211(5.5)? _pricing: undefined, 
I20170813-08:14:44.212(5.5)? _taskrouter: undefined, 
I20170813-08:14:44.212(5.5)? _trunking: undefined, 
I20170813-08:14:44.212(5.5)? _video: undefined, 
I20170813-08:14:44.213(5.5)? _messaging: undefined, 
I20170813-08:14:44.213(5.5)? _wireless: undefined, 
I20170813-08:14:44.214(5.5)? _sync: undefined } 

は私のpackage.jsonファイルです:

{ 
    "name": "MicroTM", 
    "private": true, 
    "scripts": { 
    "start": "meteor run" 
    }, 
    "dependencies": { 
    "babel-runtime": "^6.20.0", 
    "bcrypt": "^1.0.2", 
    "busboy": "^0.2.14", 
    "fibers": "^2.0.0", 
    "lodash": "^4.17.4", 
    "meteor-node-stubs": "~0.2.4", 
    "moment": "^2.18.1", 
    "twilio": "^3.6.2" 
    } 
} 

私はtwilio APIを使用してすべての問題を見つけることができませんとしてpackage.jsonファイルでいくつかの問題があるかもしれません。

編集:私は、送信のSMS機能を呼び出したのはここ

は私のクライアント側です:

Template.register.events({ 
    'submit form': function(event) { 
     event.preventDefault(); 
     let fullName = event.target.fullName.value, 
      phoneNum = event.target.phoneNum.value, 
      email = event.target.emailsignup.value, 
      password = event.target.passwordsignup.value, 
      confirmPass = event.target.passwordsignup_confirm.value; 
      console.log(phoneNum,email,password,confirmPass); 
     let randomNum = Math.floor(1000 + Math.random() * 9000); 
     let data = { 
      fullName: fullName, 
      phoneNum: phoneNum, 
      email:email, 
      password:password, 
      confirmPass:confirmPass, 
      otp:randomNum, 
      isVerified: false, 
      createdAt: Date.now() 
     }; 
     if(password != confirmPass){ 
      swal({ 
       title: 'passwords are not matching!', 
      }) 
     } 
     else{ 
      Meteor.call('registerUser',data,function (err,res) { 
       if(!err){ 
        //console.log('inside result ******* ',data) 
        sendSms(data.phoneNum,randomNum); 
        Router.go('verify') 
       } 
       else{ 
        console.log('error ******* ', err) 
       } 
      }) 
     } 
    } 
}) 

も、私は取得していますエラーのスクリーンショットをご覧ください: enter image description here

+0

クライアントが機能で利用可能であることを確認してください –

+0

クライアント側でサーバ機能をどのように呼び出すことができますか? – wrangler

+0

あなたは、クライアントとサーバの両方にアクセス可能なsend sms関数を置くべきであることを意味します。 –

答えて

3

twilioの他のメソッドを使用して同じ問題があった。

npm install twilio --save

EDIT:

もtwilioの新しいバージョンを使用して、パッケージにバージョンを保存してください方法client.messages.create()

client.messages.create({ 
     body: "MicroTM one time password:" + randomNum, 
     to: phoneNum, 
     from: "+16062631146" 
    }) 
    .then((message, err) => { 
     if (!err) { 
      console.log(message); 
     } else { 
      console.log(err); 
     } 
    }); 

を使用してみてくださいまた、あなたがsendSms methodを呼び出しているあるようですその特定のファイル内のメソッドが使用できないためにアクセスできないファイルから取得します。 sendSmsにアクセスしている場所で機能の範囲を調べてみてください。または、ここをクリックしてコードを投稿してください。

EDIT2:あなたは、クライアント側のサーバー上で定義されたメソッドを呼び出すカントが、あなたは確かajaxまたはsocket.ioを使用して、任意のイベントを送信し、クライアントからサーバーにパラメータを渡すことができます。サーバで受信した後、あなたのパラメータを呼び出してsendSmsメソッドに渡すことができます。これが役立ちます。

+0

私はあなたの答えをありがとうが、まだ運がない....同じコンソールを得る。 client.messages.createとnpm install twilio --saveの両方を試しました –

+0

これらの引数をクライアント側(フロントエンド)から渡していますが、これらはうまくいきます。 –

+0

私はもっと理解できるようにあなたの答えを編集することができます –

1

宣言するsendSmsがこのように機能するので、この現在のスコープでのみ表示されます。

はに交換してください:

Meteor.sendSms=(phoneNum,randomNum)=> { 
    ... 
} 

そして、それはどこでもアクセスできるようになります。

+0

ウィンドウがサーバー上に存在しません。 –

+0

@AnkushRishi、ありがとうございます。私は私の答えを編集しました。 – Styx

+0

Meteorを使って走っていますが、まだ私はsendSms関数を取得していません。これはスコープエラーである可能性があります –

関連する問題