サービスアカウントを使用してGoogleカレンダーAPIにアクセスしようとしているアプリケーションを構築しました。私たちは自分でアプリケーションを管理していますが、アクセスしようとしているカレンダーは別のGSuiteアカウントにあります。私たちは、GSuiteの管理者にステップhereを実行させ、クライアントIDと認証範囲 "https://www.googleapis.com/auth/calendar.readonly"に基づいてGoogleのアプリにアクセスできるようにしました。Google Calendar APIサービスアカウントを使用したFreeBusyアクセス
サービスアカウントを使用してユーザーのカレンダーデータにアクセスしようとすると、正しく要求をフォーマットする方法がわかりません。具体的には、「サブ」パラメータが含まれていない場合は、トークンが付与されているという意味で要求が機能し、その後のカレンダーへのアクセス要求に進むことができます。ただし、その後のリクエストでは、ユーザーカレンダーにエラーが返されていないため、アクセス権がありません。下記の要求である:私はGSuiteから特定の電子メール/ユーザ名が含まれている場合、その後、私は全くのトークンを要求することはできませんよ「偽装」するアカウントが
String jwtClaimset = '{'+
'"iss":"[email protected]ervice-account.com",'+
'"sub":"[email protected]",'+
'"scope":"https://www.googleapis.com/auth/calendar.readonly",'+
'"aud":"https://www.googleapis.com/oauth2/v4/token",'+
'"exp":'+expTime+','+
'"iat":'+requestTime+
'}';
、私は以下を提示していますエラー:そのエラーが提示されている理由
"error_description": "Client is unauthorized to retrieve access tokens using this method."
だから私の質問は、私はGSuiteにしている場合、ユーザーのカレンダーのいずれかにアクセスするためのサブパラメータが必要なのですので、あなたは知っていますか?
こんにちはジョージ。私はNodeJsにいくつかのAPIを書いて、ユーザーのイベントをリストし、カレンダーにイベントを作成することを試みています。私たちの組織のメールアカウントとカレンダーはgsuiteにあります。 JWTベースの認証でnodejsのgoogleapisパッケージを試しましたが、プライマリユーザーのイベントは表示されません。サービスアカウントの資格情報が他のユーザーアカウントをどのように偽装するかについては不明です。これを達成するためのプロセスを案内してくれますか? –