6
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

KiiCloudのRest APIをnode.jsで取得する方法

KiiCloudではRestAPIの取得方法をcurlコマンドで紹介しています。
Kiicloud Rest APIの取得方法
これらをcurlコマンドではなく、node.jsで取得したいと思い、サポートの方に質問してみたところ、本当に手厚い対応をしていただき、感謝のつもりで、Qiitaに投稿します。ほとんどコードはサポートの人が教えてくれました。
コミニティでの回答
大げさのことではなく、基本的にHTTP通信が可能な環境であれば、RestAPIを実行することは可能だそうです。参考になれば幸いです。

ユーザーの作成 公式ドキュメント

curl
curl -v -X POST \
  -H "X-Kii-AppID: {APP_ID}" \
  -H "X-Kii-AppKey: {APP_KEY}" \
  -H "Content-Type: application/vnd.kii.RegistrationRequest+json" \
  "https://api-jp.kii.com/api/apps/{APP_ID}/users" \
  -d '{"loginName": "user_123456", "displayName": "person test000", "country": "JP", "password": "123ABC"}'
node.js

var username = "user";
var request_body = {
  "loginName":username,
  "displayName":username,
  "country":"JP",
  "password":"password"
};
var json = JSON.stringify(request_body);
var options = {
  hostname: "api-jp.kii.com",
  port: 443,
  path: "/api/apps/[YourAppID]/users",
  method: "POST",
  agent: false,
  headers: {
    "content-length":json.length,
    "content-type":"application/vnd.kii.RegistrationRequest+json",
    "x-kii-appid":"[YourAppID]",
    "x-kii-appkey":"[YourAppKey]"
  }
};
var https = require("https");
var req = https.request(options, function(res) {
  res.on('data', function() {
  });
  res.on('end', function() {
    if (res.statusCode != 201) {
      console.log("failure:" + res.statusCode);
    } else {
      console.log("success");
    }
  });
  res.on('error', function(err) {
    console.log("failure:" + err);
  });
});
req.on('error', function(err) {
  console.log("failure:" + err);
});
req.write(json);
req.end();

ログイン 公式ドキュメント

curl
curl -v -X POST \
  -H "X-Kii-AppID: {APP_ID}" \
  -H "X-Kii-AppKey: {APP_KEY}" \
  -H "Content-Type: application/json" \
  "https://api-jp.kii.com/api/oauth2/token" \
  -d '{"username": "user_123456", "password": "123ABC"}'
node.js
var username = "name";
var password = "password";
var country = "JP";
var AppID = "任意";
var AppKey = "任意";

var request_body = {
    "username":username,
    "password":password
};
var json = JSON.stringify(request_body);
var options = {
    hostname: "api-jp.kii.com",
    port: 443,
    path: "/api/oauth2/token",
    method: "POST",
    agent: false,
    headers: { "content-length":json.length,
                "content-type":"application/json",
                "x-kii-appid":AppID,
                "x-kii-appkey":AppKey,
                }
            };

var https = require("https");
var req = https.request(options, function(res) {
    var body = '';
    res.on('data', function(chunk) {
        body += chunk;
    });
    res.on('end', function() {
            console.log("ログインデータ");
            console.log(body);
    });
    res.on('error', function(err) {
        console.log("error");
        console.log("failure:" + err);
    });
});
req.write(json); 
req.end();
/*
取得データ
"id" : "任意",
"access_token" : "任意",
"expires_in" : 2147483639,
"token_type" : "Bearer"
*/

オブジェクトの取得 公式ドキュメント

curl
curl -v -X GET \
  -H "Authorization: Bearer {ACCESS_TOKEN}" \
  -H "X-Kii-AppID: {APP_ID}" \
  -H "X-Kii-AppKey: {APP_KEY}" \
  "https://api-jp.kii.com/api/apps/{APP_ID}/users/me/buckets/{BUCKET_ID}/objects/{OBJECT_ID}"
node.js
//例ではアプリケーションスコープのデータ取得
//スコープについては下記 
//http://documentation.kii.com/ja/starts/cloudsdk/cloudoverview/idanduri/

var username = "name";
var password = "password";
var country = "JP";
var AppID = "任意";
var AppKey = "任意";
var accessToken = "上記のログインで取得";
var bakectName = "任意";
var objID = "決め打ち or 検索して取得";

var Authorization = "Bearer " + accessToken;

    var options = {
    hostname: "api-jp.kii.com",
    port: 443,
    path: "/api/apps/"+ AppID +"/buckets/"+ bakectName +"/objects/"+ objID,
    method: "GET",
    agent: false,
    headers: { 
                "content-type":"application/json",
                "x-kii-appid":AppID,
                "x-kii-appkey":AppKey,
                "Authorization": Authorization
                }
            };

    var https = require("https");
    var req = https.request(options, function(res) {
        var body = '';
        res.on('data', function(chunk) {
            body += chunk;
        });
        res.on('end', function() {
                console.log(body);
                var data = JSON.parse(body);
                                //dataをごにょごにょ
        });
        res.on('error', function(err) {
            console.log("error");
            console.log("failure:" + err);
        });
    });
    req.end();
/*
取得データ
オブジェクトデータ
*/

以上でございます。KiiCloud万歳。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
6
Help us understand the problem. What are the problem?