我有两个google workspace帐户用于测试。帐户A有一个服务帐户,在帐户B中,我添加了用于域范围委派的服务帐户,该帐户具有读取/写入帐户B中日历所需的权限。
阅读活动和日历很有效。但是,当尝试使用帐户B中的资源日历中的服务帐户创建事件时,我遇到以下错误:
{"error":{"errors":[{"domain":"calendar","reason":"requiredAccessLevel","message":"You need to have writer access to this calendar."}],"code":403,"message":"You need to have writer access to this calendar."}}
添加的权限:
如果我们在一个Google工作空间帐户中进行测试,它就可以工作。
这是密码
// clientMail is the service account id
// privateKey is the service account key
// subject is also the service account id
const jwtClient = new google.auth.JWT(
clientMail,
undefined,
privateKey,
[
'https://www.googleapis.com/auth/calendar',
],
subject,
);
let calendar = google.calendar({
version: 'v3',
auth: jwtClient,
});
...
savedEvent = (await calendar.events.insert({ calendarId, requestBody: event })).data;
...
您似乎忘记指定要将服务帐户委派给哪个用户。
from google.oauth2 import service_account
SCOPES = ['https://www.googleapis.com/auth/calendar']
SERVICE_ACCOUNT_FILE = '/path/to/service.json'
credentials = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE, scopes=SCOPES)
delegated_credentials = credentials.with_subject('user@example.org')
我尝试使用php在google calnder中创建事件。但谷歌并没有反映出这一点。 我遵循此代码 http://docs.dhtmlx.com/scheduler/how_to_start.html 在data.php文件中有这个代码 我有api控制台帐户,在该帐户中只有客户端ID和客户端机密。 我不知道如何得到这2个值"878294925469@developer.gserviceaccoun
我能够使用服务帐户和谷歌日历API在谷歌日历中创建一个事件,其中项目和服务帐户是在谷歌工作区管理员帐户中创建的,在同一个帐户中,我启用了域范围的委派属性。我还没有创建单独的日历,也没有授予访问服务帐户的权限。如果我在CreateDelegate()中使用我的工作区google帐户,则此事件将在'abc@myworkspace.com对于我添加的每个与会者,“日历”和“创建人”属性也是相同的。 所以
因此,我已将服务号设置为域范围的授权,如本文所述执行谷歌办公套件域范围的授权。在谷歌办公套件管理控制台中,我已授权服务号使用OAuth 2.0范围: 每次我试图创建一个事件,最终都会出现这个错误 这建立了google凭据,不使用模拟,日历与服务号共享。
我在我的Angular 9 Web应用程序中使用谷歌日历API,并试图在我的谷歌办公套件域内的谷歌日历上创建事件 在G Suite管理控制台中,我为服务帐户授予了作用域的权限https://www.googleapis.com/auth/calendar和https://www.googleapis.com/auth/calendar.events 我在我的帐户下创建了日历本身,并添加了具有“更改
我试图实现与谷歌服务号的用户模拟,一直有一段时间的问题,这是我在Java使用的代码: 当我尝试从共享日历中读取事件时,我收到以下身份验证错误: com.google.api.client.auth.oauth2.TokenResponseException: 401未经授权的邮政https://oauth2.googleapis.com/token 如果我不使用模拟,我可以读取事件,但不能邀请与会
我有一个应用程序使用s2s与谷歌日历API的连接。我需要在不同的用户日历中创建事件。若要使之成为可能,用户应转到日历的设置并将其日历共享到服务帐户。但我想为用户简化这一点 - 这样他们就不需要去他们的日历设置。我没有用于用户交互的界面 - 这是一个机器人。如何以其他方式访问用户的日历?