🍣

bundleからAPIでアカウント情報を取得

2024/11/08に公開

はじめに

bundleというアカウント管理サービスから、APIを使用してアカウントの情報を取得します。
https://bundle.jp/

今回はakerunを想定。

bundleはgraphQL APIを採用している。
https://github.com/graphql/graphql-spec

code

main.gs
const TOKEN = '<bundleのアクセストークン>';

function getAccountList(){
  const query = `
{
  team {
    applicationAccounts(where: {applicationIds: "<アプリのbundle上でのID>"}, first:20){
      nodes{
        applicationAccountEmails{email},
        displayRole,
        externalId,
        data{displayName}
      }
    }
  }
}
    `;

  const options = {
    'method': 'POST',
    'payload': JSON.stringify({query: query}),
    'headers': {
      'content-type': 'application/json',
      'Accept': 'application/json',
      'Authorization': `Bearer ${TOKEN}`,
    },
  };

  const res = UrlFetchApp.fetch(URL_API, options);
  json = JSON.parse(res).data.team.applicationAccounts.nodes;
  return json.map(json => {
    return {
      role : json.displayRole,
      email : json.applicationAccountEmails[0]?.email,
      name: json.data.displayName,
      id: json.externalId,
    };
  });

Discussion