KintoneからChatworkのユーザ一覧を取得する
2021-9-28
2021-9-15
API トークンを発行したユーザのコンタクトとなっているユーザ一覧を取得します。
この記事の目次
使用したコード
(async () => {
const uri = "https://api.chatwork.com/v2/contacts";
const header = {
"X-ChatWorkToken": "ここに発行したAPIトークンを指定",
};
try {
const response = await kintone.proxy(uri, "GET", header, "");
console.log("Chatworkからデータを取得しました。", response);
} catch (error) {
console.log("Chatworkからデータを取得できませんでした。", error);
}
})();
解説
処理の順序
kintone.proxy の返り値は Promise オブジェクトなので、then、catch の中のコードは非同期で処理されます。上記のコードの下に、取得後を想定したコードを記述すると、思ったように動作しないケースがあるので、取得後の処理は then の中に書いてください。
レスポンスの内容
Chatwork から受け取るデータ(上記コードの response の部分)は、配列で取得されます
- HTTP ボディ(ほしいデータの部分、JSON 形式)
- HTTP ヘッダー(受信に成功したかどうかなどのステータスコード
- ゲートウェイ情報(基本的には使いません。Chatwork は Amazon のゲートウェイを利用しているため、その情報が取得されます)
また、HTTP ボディは JSON 形式となっているので、JSON.parse をかませてやる必要があります。以下は、今回のケースの、parse 後のオブジェクト内容の例です。
{
"account_id": 123,
"room_id": 322,
"name": "John Smith",
"chatwork_id": "tarochatworkid",
"organization_id": 101,
"organization_name": "Hello Company",
"department": "Marketing",
"avatar_image_url": "https://example.com/abc.png"
}
エラーが発生した際の対処法
HTTP ヘッダーが’400’や’401’など、エラーが発生している場合。HTTP ボディは以下のようになります。
{
"errors": ["Invalid API token"]
}
正常終了した場合の HTTP ヘッダーは'200'ですので、正常終了した場合のみ処理をしたい場合は、以下のようなエラーチェックを入れた方が良いかもしれません。
if (response[1] !== "200") {
console.log("データを取得しましたが、エラーが返却されました。", response[1]);
return;
}