御世話になります。
node.jsからapiを呼び出すhttp通信についてお聞きしたいことがあります。
今までgoogle apps scriptで開発をしていたのですが、急遽別の言語であるnode.jsを利用しなければならない状況になりました。
node.jsは、google apps scriptでも動くjavascriptで動いている言語なので、まず、
google apps script からnode.jsへの読み替えを学習の始めとしたいと考えています。
現在 google apps script で起動したapiのコードが以下になります。
認証を通して、apikeyを受け取るものです。
1function myFunction() { 2 var url = 'https://api.soracom.io/v1/auth'; 3 var headers = { 4 "Accept": "application/json" 5 }; 6 7 var payload = { 8 "email":"登録したメールアドレス", 9 "password":"登録したパスワード" 10 }; 11 12 var options = 13 { 14 15 'contentType': 'application/json', 16 "headers":headers, 17 "method": "post", 18 "payload" : JSON.stringify(payload) 19 }; 20 21 var response = UrlFetchApp.fetch(url,options); 22 var data = JSON.parse(response.getContentText()); 23 Logger.log(data); 24}
上記と同じpost通信をする機能をnode.jsで実現したいと思います。
自分でいろいろ思考錯誤し、requestモジュールを利用したのでが、エラーコードを吐いてしまいます。
上記のgoogle apps scriptと同じ機能を考えて作ったものです。
認証を通し、結果を受け取るというものです。
node.js
1var request = require('request'); 2 3 var headers = { 4 "Accept": "application/json" 5 }; 6 7 var payload = { 8 "email":"登録したメールアドレス", 9 "password":"登録したパスワード" 10 }; 11 12 var options = { 13 headers:headers, 14 'contentType': 'application/json', 15 uri:'https://api.soracom.io/v1/auth', 16 "payload" : JSON.stringify(payload), 17 json: true 18 }; 19 20 21request.post(options, function(error, response, body){ 22 if (!error && response.statusCode == 200) { 23 console.log(body.name); 24 } else { 25 console.log('error: '+ response.statusCode); 26 } 27});
【お聞きしたいこと】
node.jsでpost通信をする方法になります。文法的な指摘を頂ければと思います。
【追記】
ご指摘ありがとうございます。「ソラコムapiをlambdaのnode.jsで実行する」という目的のために開発を進めています。しかし、lambdaの使い方もnode.jsの書き方も分からない現状でした。そこで、唯一ソラコムapiで実行できたgoogle apps scriptを出発点に、質問し解決できればと考えていました。また、実行できたコードがあれば、質問し易いと判断したのですが、逆に誤解を与えてしまい申し訳ありませんでした。
コメントにありましたエラーですが、以下になります。
{
"errorMessage": "RequestId: 681aa76f-bec9-11e6-b389-bfe89320e0af Process exited before completing request"
}
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー