2016-08-05 10 views
1

現在、Expressプラットフォーム、Twilio Node.js SMS API、および明らかにJavaScriptを使用してユーザーにテキストメッセージを送信しています。問題は、フロントエンドのGET変数を通してデータを送信し、バックエンドのnode.jsでそれらの値を取得するために、私が何をすべきか分かりません。Expressを使用してJavascriptからNode.jsにデータを送受信する

テスト目的のために、クリックするとテキストメッセージを固定番号に送信する簡単なボタンを作成しました。

function sms() { 
 
    xmlhttp = new XMLHttpRequest(); 
 
    xmlhttp.open("GET","http://localhost:5001", true); 
 
    xmlhttp.onreadystatechange=function(){ 
 
    if (xmlhttp.readyState==4 && xmlhttp.status==200){ 
 
      alert(xmlhttp.responseText); 
 
     } 
 
    } 
 
    xmlhttp.send(); 
 
}

ここでNode.jsの側面である:

var accountSid = 'ACCOUNT_SID'; 
 
var authToken = 'ACCOUNT_TOKEN'; 
 
//require the Twilio module and create a REST client 
 
var client = require('twilio')(accountSid, authToken); 
 

 
var express = require("express"); 
 
var app = express(); 
 

 
app.get('/',function(request,response){ 
 
    
 
    var to = "TO"; 
 
    var from = "FROM"; 
 
    client.messages.create({ 
 
     to: to, 
 
     from: from, 
 
     body: 'Another message from Twilio!', 
 
    }, function (err, message) { 
 
     console.log("message sent"); 
 
     
 
    }); 
 

 
}); 
 
app.listen(5001);

私はアクロス来ている。ここ

はjavascriptの側面がありますSだから、それをまとめるために、私は変数(を送信したいのNode.jsからresponseTextを送信するために、それらがresponse.send("Hello World");又は第二1 response.write("Hello again"); response.end();

を使用して 最初の1を動作させるために管理することはできません二つの方法、 from、messageなど)をHTTPリクエストで取得し、node.jsに取り込んでresponseTextを送信します。私はJSとPHPの間のAJAXリクエストに非常に満足していますが、Node.jsは私にとって初めてのことです。私は、新しいガイドを受け取り、Node.jsの中にSMSに返信する方法で、ここであなたを助けになると思い、事前

+0

提供したコードは両方とも動作するはずですが、サーバーサイドのコードには表示されていません。どうしたの?どこにサーバー側のコードに入れましたか?あなたがリクエストをするとどうなりますか?ブラウザの開発者ツールを使ってリクエストを調べたことがありますか?それは200 OK応答を得ますか?それはあなたが期待するデータを含んでいますか?コンソールでエラーメッセージを調べましたか? (私は、ソリューションを見つけるためにGoogleにスティックするのは本当に簡単なクロスオリジンの例外があると思うだろう) – Quentin

+2

小さなノートは、成功を通知するために何もフロントエンドに送っていない。これを行うには、単純なresponse.send()またはresponse.send( 'Received the data')を使用します。フロントエンドに伝える200. – Brant

+0

@Quentinブラウザでリクエストを行うと200 OKレスポンスが得られますが、JSで評価するとレスポンステキストに警告することができません。コンソールログに警告メッセージは表示されません。 – Felix

答えて

0

ありがとう:

https://www.twilio.com/docs/guides/sms/how-to-receive-and-reply-in-node-js

CodeRail右側に沿ってそれを順を追って説明しますが、特に「動的なTwiMLメッセージを生成する」というセクションに注意を払う必要があります。

var http = require('http'), 
    express = require('express'), 
    twilio = require('twilio'), 
    bodyParser = require('body-parser'); 

var app = express(); 
app.use(bodyParser.urlencoded({ extended: true })); 

app.post('/', function(req, res) { 
    var twilio = require('twilio'); 
    var twiml = new twilio.TwimlResponse(); 
    if (req.body.Body == 'hello') { 
     twiml.message('Hi!'); 
    } else if(req.body.Body == 'bye') { 
     twiml.message('Goodbye'); 
    } else { 
     twiml.message('No Body param match, Twilio sends this in the request to your server.'); 
    } 
    res.writeHead(200, {'Content-Type': 'text/xml'}); 
    res.end(twiml.toString()); 
}); 

http.createServer(app).listen(1337, function() { 
    console.log("Express server listening on port 1337"); 
}); 
関連する問題