无法使用Java使用日历API创建视频群聊会议

问题描述 投票:0回答:1

这里是代码。

private static Credential authorize() throws Exception {
    HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
    JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
    InputStream in = ModuloCalendar.class.getResourceAsStream("quickstart-1585944958709-f0acf97c5fa8.json");  

    Collection<String> scopes  = CalendarScopes.all();

    GoogleCredential credential = GoogleCredential.fromStream(in).createScopes(scopes);
    return credential;
}
Calendar entry = new Calendar();
entry.setSummary(descripcion);

ConferenceProperties conferenceProperties=new ConferenceProperties();

List<String> allowedConferenceSolutionTypes = new ArrayList<String>();

allowedConferenceSolutionTypes.add("hangoutsMeet");

conferenceProperties.setAllowedConferenceSolutionTypes(allowedConferenceSolutionTypes);

entry.setConferenceProperties(conferenceProperties);
View.display(entry);

Calendar result = client.calendars().insert(entry).execute();
View.display(result);

我已经完成对https://developers.google.com/identity/protocols/oauth2/service-account的操作

它创建日历,但总是返回"allowedConferenceSolutionTypes":["eventHangout"]

不是hangoutsMeet

java google-calendar-api google-contacts-api
1个回答
0
投票

答案:

由于服务帐户不属于您的域,因此它们无法创建conferenceSolutionhangoutsMeet的日历。

更多信息:

花了我一点时间来理解这一点,但是根据Events resource of the Calendar API的文档,会议解决方案的类型如下:

并且来自"addOn"

服务帐户是您的G Suite域的不是成员,与用户帐户不同。例如,如果您与G Suite域中的所有成员共享资产,则不会与服务帐户共享资产。同样,由服务帐户创建的任何资产都不能由G Suite管理员拥有或管理。

您正在经历的结果是:服务帐户不属于您的域,因此无法创建具有会议Google Cloud Service Account documentation值的日历针对其自身解决方案类型。

[如果希望日历具有此会议解决方案类型,则必须创建日历,使其由您的G Suite域成员拥有;也就是说,让服务帐户创建一个模拟为G Suite域成员的日历。

之所以从hangoutsMeetTry this API功能中获得正确结果,是因为该API调用已获得您的授权-G Suite域用户。

希望对您有帮助!

参考:

© www.soinside.com 2019 - 2024. All rights reserved.