ユーザーのリストを事前に同期する必要があるのはなぜですか? ユーザーのログインを許可し、ログインするユーザーに基づいてDBにユーザーを動的に作成しないのはなぜですか?
本当にユーザーを同期する必要がある場合:
ユーザーの同期は、Contacts API ではなく 、 Google Apps Provisioning APIで行う必要があります。
インストールされたアプリケーション (サーバーのどこかに) を構築していますか? または、複数のサイトからドメイン管理者がアクセスしてアクセスを許可できるようにする Web アプリケーションを構築していますか?
それが (サーバーに) インストールされているアプリケーションである場合、Google Apps から別のシステムにユーザーを取得するための読み取り専用アクセスのみが必要である限り、それは非常に簡単です。
ドメイン管理者は次のことを行う必要があります。
1) 訪問:
https://www.google.com/a/cpanel/(YOUR DOMAIN NAME)/ManageOauthClients
(YOUR DOMAIN NAME) と同じクライアント名にスコープへのアクセスを許可します。
https://apps-apis.google.com/a/feeds/user/#readonly
2) ドメイン コンシューマー キー/シークレットを取得し、有効になっていることを確認します。ここからつかみます:
https://www.google.com/a/cpanel/(YOUR DOMAIN NAME)/SetupOAuth
開発者は次のことを行う必要があります。
次に、そのコンシューマー キーとシークレットで 2-legged OAuth 1.0 を使用してアクセスする必要があります。OAuth 1.0 プレイグラウンドを使用して試すことができます。遊び場では、セクション 1 と 3 には何も触れないでください。セクション 2 を使用して署名方法として HMAC_SHA1 を選択し、それらのフィールドにキー (ドメイン名) とシークレットを指定します。セクション #6 で、リクエストする URL を指定します。これは次のようになります。
https://apps-apis.google.com/a/feeds/(YOUR DOMAIN NAME)/user/2.0
そして、実行を押します。OAuth 1.0 プレイグラウンドは SSL 対応の URL でホストされていないことに注意してください。そのため、試してみるときにテスト ドメインでこれを行い、テスト後にドメイン シークレットをリセットすることをお勧めします。
手順 1 と 2 は、適切な指示があれば、ドメイン管理者が従うのはかなり簡単です。簡単にする唯一の方法は、Google Apps Marketplaceでアプリケーションをホストすることです。これにより、アプリケーションに単一のキー/シークレットが与えられ、管理者がアプリをインストールしてアクセス許可を付与するだけで、アプリケーションのキー/シークレットにインストール中のドメインのデータにアクセスするためのアクセスを許可するのに十分です。手順 1 と 2 を手動で行う必要はありません。
注: 管理者がドメイン ユーザー リストへのアクセスを許可する必要がある、またはプロビジョニング API への書き込みアクセスが必要な Web アプリケーションを構築している場合、ドメイン クライアント/シークレットは機能しません。他の承認メカニズムのいずれかを使用する必要があります。アプリケーションは、API コンソールでクライアント ID/クライアント シークレットをセットアップする必要がありますが、各ユーザーにこれを実行させる必要はありません。
ユーザーが自分の Apps アカウントでログインできるようにする:
ログインに OAuth 2.0 を使用します (OpenID Connect ベース):
https://developers.google.com/accounts/docs/OAuth2Login
API コンソールでアプリケーションのクライアント情報をセットアップする必要がありますが、それは 1 回だけです。すべてのドメインなどに対して行う必要はありません。