スキップしてメイン コンテンツに移動

GASで連絡先&グループ管理

GASで連絡先&グループ管理

GAS連携と連絡先連携の概要

Google Apps Script(GAS)は、Google Workspace のサービスを自動化するための強力なツールです。特に 連絡先連携 を行う際には、ContactsApp を利用することで、ユーザーの連絡先情報を簡単に取得・操作できます。この記事では、getContactscreateContactdeleteContact などの主要メソッドを中心に、実際のスクリプト例とグループ管理のテクニックを紹介します。

ContactsAppで連絡先取得

連絡先取得は ContactsApp.getContacts() を使って行います。以下のサンプルは、全連絡先を取得し、名前とメールアドレスをコンソールに出力する例です。

function listAllContacts() {
  var contacts = ContactsApp.getContacts();
  contacts.forEach(function(contact) {
    var name = contact.getFullName();
    var email = contact.getPrimaryEmail();
    Logger.log(name + ' - ' + email);
  });
}

このスクリプトを実行すると、スクリプトエディタのログに連絡先一覧が表示されます。getContacts は検索条件を指定しない場合、すべての連絡先を返します。検索条件を絞りたい場合は ContactsApp.getContactsByEmailAddress(email) などを利用してください。

連絡先作成と削除

新しい連絡先を作成するには ContactsApp.createContact() を使用します。以下は、名前とメールアドレスを指定して連絡先を作成する例です。

function addNewContact() {
  var firstName = '太郎';
  var lastName = '山田';
  var email = 'taro.yamada@example.com';
  var contact = ContactsApp.createContact(firstName, lastName, email);
  Logger.log('Created contact: ' + contact.getFullName());
}

連絡先を削除するには、取得した Contact オブジェクトの deleteContact() メソッドを呼び出します。以下は、特定のメールアドレスを持つ連絡先を検索し、削除する例です。

function deleteContactByEmail(email) {
  var contacts = ContactsApp.getContactsByEmailAddress(email);
  contacts.forEach(function(contact) {
    contact.deleteContact();
    Logger.log('Deleted contact: ' + contact.getFullName());
  });
}

注意点として、deleteContact は不可逆的な操作です。実際に削除する前に、対象連絡先を確認するロジックを追加すると安全です。

グループ管理の実装

連絡先をグループで管理することで、メール配信やアクセス権限の設定が容易になります。ContactsApp には Group オブジェクトがあり、以下のようにグループを作成・連絡先を追加できます。

function createGroupWithContacts() {
  var groupName = 'プロジェクトチーム';
  var group = ContactsApp.createGroup(groupName);
  var emails = ['alice@example.com', 'bob@example.com'];
  emails.forEach(function(email) {
    var contacts = ContactsApp.getContactsByEmailAddress(email);
    contacts.forEach(function(contact) {
      group.addContact(contact);
    });
  });
  Logger.log('Group created: ' + group.getName());
}

既存のグループから連絡先を削除する場合は、group.removeContact(contact) を使用します。また、グループ全体を削除するには group.deleteGroup() を呼び出します。グループ管理は、連絡先の整理やメールマーケティングに不可欠な機能です。

この記事はAIによって作成されました。

コメント