发布请求以使用图形API创建事件创建事件引发“ OrganizationFromTenantGuidNotFound”错误

时间:2020-06-11 14:30:50

标签: azure microsoft-graph-api microsoft-graph-calendar

我想使用Microsoft graph API生成在线事件。

我有Office 365订阅

我已在Azure AD中使用帐户类型“ 任何组织目录(任何Azure AD目录-Multitenant)中的帐户和个人Microsoft帐户(例如Skype,Xbox)“

配置时未提供任何重定向URL

我已经为Calendars.ReadWrite的应用授予了委派权限和应用程序权限,并征得了管理员的同意。

Maven依赖项

    <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>msal4j</artifactId>
        <version>1.6.0</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-nop</artifactId>
        <version>1.8.0-beta4</version>
    </dependency>
    <dependency>
        <groupId>com.microsoft.graph</groupId>
        <artifactId>microsoft-graph</artifactId>
        <version>1.7.1</version>
    </dependency>
    <dependency>
        <groupId>com.microsoft.graph</groupId>
        <artifactId>microsoft-graph-core</artifactId>
        <version>1.0.1</version>
    </dependency>
    <dependency>
        <groupId>com.microsoft.graph</groupId>
        <artifactId>microsoft-graph-auth</artifactId>
        <version>0.2.0-SNAPSHOT</version>
    </dependency>

我正在使用ClientCredentialProvider创建身份验证提供程序。但是,每当我尝试创建事件时,都会收到“ OrganizationFromTenantGuidNotFound”

ClientCredentialProvider authProvider =  new ClientCredentialProvider(
            CLIENT_ID,
            Arrays.asList("https://graph.microsoft.com/.default"),
            CLIENT_SECRET,
            "938db5c8-e2ce-3c76-bad7-1e00cf87b779",
            NationalCloud.Global

    );

请在此处找到堆栈跟踪

stacktrace

请帮助!

1 个答案:

答案 0 :(得分:0)

更新:我离线调查了Varun。在他的情况下,问题在于他试图在来宾用户的日历中创建一个事件。这是一个hotmail.com用户,已作为访客添加到他的M365租户中。由于用户的邮箱(因此,她的日历)在M365租户之外,因此无法使用。

从堆栈跟踪中,您正在将POST发送到https://graph.microsoft.com/v1.0/me/events。这需要用户上下文,因为您正在使用/me段。但是,从上面的代码中,您将获得仅应用程序令牌,这意味着您已通过应用程序身份验证,而不是作为任何用户身份验证。尝试使用/me访问任何URL都会失败。

相反,您需要获取用户的ID,然后发布到https://graph.microsoft.com/v1.0/users/{user-id}/events