御世話になります。
node.jsのpost通信について質問します。
apiを利用する際に、ユーザー名とパスワードをapi側のサイトに通信すると、今後その他のapiが使えるように認証キーを渡してくれます。
同期処理の場合
1:認証を通すコード
2:認証で受け取った認証キーでapiを動かすコード
このように順々にコードを書き動かすことが出来ます。
しかし、node.jsの非同期処理の書き方で、どのように認証が終わった後に、その値を利用してapiの通信をすればよいかよくわかりません。
順々にコードを書いたnode.jsが以下になりうまく起動しません。
その原因が、認証を通した apikey,token を次のapi通信に渡せていないと考えています。
エラーでも、指定した apikey,token に問題があると指摘しています。
どのような書き方をすればよいかを教えてください。
node.js
1 2 //認証を通すコード 3 //ヘッダーを定義 4 var headers = { 5 'Content-Type':'application/json', 6 "Accept": "application/json" 7 } 8 9 //オプションを定義 10 var options = { 11 url: 'https://api.soracom.io/v1/auth', 12 method: 'post', 13 headers: headers, 14 body : { 15 "email":"メールアドレス", 16 "password":"パスワード" 17 }, 18 json: true 19 } 20 21 //認証キーと認証に必要なトークンを受け取る 22 request(options, function(error, response, body){ 23 if (!error && response.statusCode == 200) { 24 25 var apikey = response.body["apiKey"]; 26 var token = response.body["token"]; 27 28 console.log("apikey: "+apikey); 29 console.log("token: "+token); 30 console.log("apiは成功しました"); 31 } else { 32 console.log('error: '+ response.statusCode); 33 console.log(response.body); 34 console.log("apiは失敗に終わりました"); 35 } 36 }); 37 38//api通信を行う 39 //ヘッダーを定義 40 headers = { 41 'Content-Type':'text/plain', 42 "Accept": "application/json", 43 "X-Soracom-API-Key":apikey, 44 "X-Soracom-Token":token 45 } 46 47//event.imsi は、無視してください 48 //オプションを定義 49 options = { 50 url: 'https://api.soracom.io/v1/subscribers/'+event.imsi+'/deactivate', 51 method: 'post', 52 headers: headers 53 } 54 55 request(options, function(error, response, body){ 56 if (!error && response.statusCode == 200) { 57 console.log(response.body); 58 console.log("apiは成功しました"); 59 } else { 60 console.log('error: '+ response.statusCode); 61 console.log(response.body); 62 console.log("apiは失敗に終わりました"); 63 } 64 });
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/14 02:34