Node.jsにて外部連携で画像をアップロード、ダウンロードされる方は、XMLHttpRequestを使用されるかと思われますが、実装方法とリクエストヘッダの記載方法を投稿させて頂きます。
下準備:
- Node.jsのインストール,
- npmにて"XMLHttpRequest" のインストール
*AUTH-KEY,API-TOKENなどの肝要な情報に関しては、dotenvなどを使って環境変数として定義して扱ってあげてください。
dotenvの参考記事:https://qiita.com/ozaki25/items/3e2cf94f29bd0edc1979
処理内容:
今回は、XMLHttpRequestの実装・リクエストヘッダの記載方法ですので、レコード一件に対してGETしてみます。
メソッド:GET
クエリ:url
同期処理の可否: false (falseで同期処理になります。)
リクエストヘッダ: 'X-Requested-With':'XMLHttpRequest' ,
'X-Cybozu-Authorization':'process.env.KINTONE_USER_TOKEN ,
実際のサンプルコード:
'use strict';
let XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest; //XMLHttpRequestの定義
require('dotenv').config(); //dotenvの定義
const url = 'https://' + process.env.KINTONE_DOMAIN + '.cybozu.com/k/v1/record.json?app=316&id=1' //クエリURLの作成 app=取得したいアプリID&id=取得したいレコードID
const xhr = new XMLHttpRequest(); //XMLHttpRequestの作成
xhr.open('GET', url, false); //メソッド , URLクエリ , 同期処理の可否 falseで同期処理になります。
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); //ここからリクエストヘッダに情報をセットしていきます。
xhr.setRequestHeader('X-Cybozu-Authorization', process.env.KINTONE_USER_TOKEN); //アプリに対して権限がなくてもログイン必須
xhr.onload = () => { //XMLHttpRequestのリクエストステータスの確認
if (xhr.status === 200) {
// success
console.log(JSON.parse(xhr.responseText));
} else {
// error
console.log(JSON.parse(xhr.responseText));
}
};
xhr.send();
リクエストヘッダの内容については、下記のURLの記事を参考にしてみてください。
[X-Cybozu-Authorization]は、普段使われているログインID、PWをBASE64エンコードに変換して値として
xhr.setRequestHeader('X-Cybozu-Authorization', process.env.KINTONE_USER_TOKEN)
でリクエストヘッダの配列に入れてあげてください。
[X-Cybozu-API-TOKEN]で取得したい場合は、アプリのAPIキーを値として入力して
xhr.setRequestHeader('X-Cybozu-API-TOKEN', process.env.KINTONE_API_TOKEN)
でリクエストヘッダの配列に入れてあげてください。
以上簡単ではございますが、説明は以上となります。
もしなにか不明なことあればご質問お願いいたします。
参考資料:
https://developer.mozilla.org/ja/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest