質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

2回答

4713閲覧

GoogleAppScriptのContactsAppクラスが廃止されたかどうかについて

wefee

総合スコア5

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

1クリップ

投稿2021/06/22 09:16

編集2021/06/22 10:52

2021/6/15にGoogle ContactsAPIが廃止されたようです
これに伴ってか、下記の様なContactsAppクラスを利用したGASを実行するとエラーをたまに吐くようになってしまいました。
毎回エラーになる訳では無く、また公式にContactsAppが廃止された情報は見当たらないのですが、
ContactsAppクラスがContactsAPIのラッパーであるならばやはり廃止と見た方が良いのでしょうか。
しかしエラーになったりならなかったりする理由が分かりません。移行期間ということでランダムにエラーを返しているのでしょうか?

またContactsAPIの後継としてPeopleAPIが提供されていますが、ContactsAppの後継となるようなクラスはあるのでしょうか。

GAS

1funcion getName(){ 2 var name = ContactsApp.getContact("メールアドレス").getFamilyName(); 3}

実行結果※エラーになる場合とならない場合がある

error

1Exception: サービス エラー: ContactsApp: Contacts API is being deprecated. Migrate to People API to retain 2programmatic access to Google Contacts. See 3https://developers.google.com/people/contacts-api-migration.

ご教示の程よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

私の環境ではエラーが再現できなかったので、理由はわかりかねますが、エラー文を見る限りではGoogle ContactsAPI廃止に伴う不具合とみて間違いないと思います。
ContactsAppについて今後修正が入るのか、廃止されるのかされるとは思います。

正確なのはPeopleAPIを利用してしまう方法で、サービスよりPeopleAPIを追加して利用します。

投稿2021/06/23 01:55

macaron_xxx

総合スコア3191

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

wefee

2021/06/23 09:10

GASでPeopleAPIを叩くコードのサンプルがなかなか見つからず、手探り状態でしたがやりたいことは実現できました。高速化もできてよかったです。ありがとうございました。
guest

0

サービスからPeopleAPIを追加して…というご回答を頂いたので、
こちらのリファレンスを参考にコードを書き直してみました。
ContactAppよりかなり速いですね。

GAS

1var key = "検索するメールアドレスor名前" 2function GetPeople(key) { 3 var people = People.People.searchContacts({ 4 query: key, 5 pageSize: 1, //複数マッチ時に何件返すか 最大10件? 6 readMask: "names,emailAddresses,organizations" //取得するフィールド 7 }); 8 var name = people.results[0].person.names[0].familyName; //苗字 9 var address = people.results[0].person.emailAddresses[0].value; //メールアドレス 10 var org = people.results[0].person.organizations[0].name; //組織 11}

投稿2021/06/23 09:24

編集2021/06/23 09:30
wefee

総合スコア5

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問