Node.jsにてXMLHttpRequestの実装・リクエストヘッダの記載方法について

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の記事を参考にしてみてください。

https://developer.cybozu.io/hc/ja/articles/202111374-User-API-%E3%81%AE%E5%85%B1%E9%80%9A%E4%BB%95%E6%A7%98 

 

[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