はじめに
Google Apps Scriptを使用してGoogleアカウントの情報を取得する方法について調査しました。Google Apps Script APIを使用して取得する情報と、APIを使用せずに取得できる情報があります。
本記事では、実行ユーザーの以下の情報を取得する方法と、関連するエラーの解消方法について記載します。
- メールアドレス
- 名前(Google Apps Script APIを使用)
Google Apps Scriptとは?
Google Apps Scriptは、Googleが提供するローコードプラットフォームです。Gmailアカウントがあれば無料で利用でき、開発環境のセットアップが不要なため、すぐに始められるのが特徴です。
Google Apps Scriptを利用することで、以下のようなGoogleが提供する各種サービス(1部)の自動化やその他サービスと連携が可能です。
- Gmail
- Googleドライブ
- Googleスプレッドシート
- Googleカレンダー
- Googleドキュメント
- Googleスライド
- Googleフォーム
前提
Googleアカウントに以下の項目が登録されていること
- メールアドレス
- 名前
- その他の取得したい項目
Google App Scriptの使用方法
情報を取得する前に、Google Apps Scriptの開き方と新規ファイルの作成方法について説明します。
Google App Scriptの開き方
Google Apps Scriptは、多くの場合Googleアプリのファイルから開かれます。
以下はスプレッドシートからGoogle Apps Scriptを開く方法です。
1.Google スプレッドシートを開きます。
2.ツールバーから「拡張機能」→「Google Apps Script」を選択します。
新規ファイルの作成方法
1.Google Apps Scriptエディタで、ファイルの横の「+」ボタンをクリックします。
2.「スクリプト」または「HTML」を選択します。
※スクリプトを選択すると、「コード.gs」の初期状態と同じファイルが作成されます。
HTML
メールアドレスの取得
Googleアカウントの連絡先情報に記載されているメールアドレスを取得します。
メールアドレスはAPIを使用せずに取得できます。
function getMailAddress() {
const address = Session.getActiveUser().getEmail();
Logger.log("メールアドレスは" + address + "です");
}
以下のメソッドは現在サポートが終了しています。
getUserLoginId()
実行手順
結果
名前の取得(Google Apps Script APIを使用)
Googleアカウントの【名前と発音】に登録されている情報を取得します。
名前の取得には、サービスの追加(Google Apps Script APIの使用)が必要です。
②追加するサービス(People APIドキュメント)を選択し、【追加】を押下します。
③「People」というIDで追加した場合、以下のコードで名前を取得します。
// 名前の取得
function getName() {
const people = People.People.get('people/me', { personFields: 'names' });
const familyName = `${people['names'][0]['familyName']}`;
const givenName = `${people['names'][0]['givenName']}`;
const fullName = `${people['names'][0]['familyName']} ${people['names'][0]['givenName']}`;
Logger.log("姓は" + familyName + "です");
Logger.log("名は" + givenName + "です");
Logger.log("姓+名は" + fullName + "です");
}
OAuthスコープを追加する
OAuthスコープが不足しているため、以下の手順で追加します。
①【プロジェクトの設定】を押下します。
②【「appsscript.json」マニフェスト ファイルをエディタで表示する】にチェックを入れます。
③以下の情報を追記します。
※必要なOAuthスコープはAPIの公式ドキュメントに記載されています。
"oauthScopes": [ "https://www.googleapis.com/auth/userinfo.profile" ]
{
"timeZone": "Asia/Tokyo",
"dependencies": {
"enabledAdvancedServices": [
{
"userSymbol": "People",
"version": "v1",
"serviceId": "peopleapi"
}
]
},
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8",
"webapp": {
"executeAs": "USER_DEPLOYING",
"access": "MYSELF"
},
"oauthScopes": [
"https://www.googleapis.com/auth/userinfo.profile"
]
}
結果
再度実行すると、エラーが解消され名前を取得することができました。
その他の項目
PeopleAPIの場合、取得したい項目のpersonFieldsに修正することで他の情報を取得することが可能です。
const people = People.People.get('people/me', { personFields: '取得したい項目' });
例)
personFields | 項目名 |
---|---|
addresses | 住所 |
genders | 性別 |
birthdays | 生年月日 |
organizations | 組織情報 |
externalIds | 外部ID |
参考:https://developers.google.com/people/api/rest/v1/people.connections/list?hl=ja
さいごに
Google Apps Scriptを使用してGoogleアカウントの情報を取得する方法について記載しました。
その他のGoogle Apps Script APIを使用する場合も同様の手順で取得することが可能です。
当記事が参考になれば幸いです。