当前位置: 首页 > 知识库问答 >
问题:

微软graph api:有些用户在使用我的app时得到403,有些没有,为什么?

楚承天
2023-03-14

我得到

微软\图形\异常\图形异常:[0]:收到403调用https://graph.microsoft.com/beta/me/chats/[id]@unq.gbl.spaces/members

我不明白为什么。

要明确的是:我们公司的其他用户也提出了同样的要求,所以这并不是总是失败的。值得注意的是,以Chat开头的权限来自图形api的测试版。检索用户信息(ownUser getGivenName)也适用于所有用户。

应用程序中定义的范围包括:

openid 配置文件 offline_access user.read mailboxsettings.read calendars.readwrite Chat.ReadBasic Chat.Read Chat.Read Chat.ReadWrite

完全响应:

{
    "error": {
        "code": "Forbidden",
        "message": "Forbidden",
        "innerError": {
            "date": "2021-05-04T12:05:41",
            "request-id": "xxxxxxx-f7ea-4912-a23b-676002d0912d",
            "client-request-id": "xxxxxxx-f7ea-4912-a23b-676002d0912d"
        }
    }
}

响应头也不显示任何内容:

我还尝试重新访问 https://login.microsoftonline.com/common/adminconsent?client_id=[id]并给予我的(管理员)同意,但这不会改变任何东西。

我还解码了一个工作用户jwt令牌和一个非工作用户,他们配置了相同的scp(作用域)。这是差异

  • /me/聊天
  • /me
  • /me/chats/$chatId/message
  • /me/chats/$chatId/成员

共有1个答案

柴良哲
2023-03-14

只是一些观察和变通方法来帮助通过谷歌发表这篇文章的其他人:

> < li>

只有< code >/me/chats/$ chatId/members 失败,没有明显的原因。这可能是测试版实现中的一个错误。也许最好使用< code>$expand参数来查看它们,以缓解这个问题。

对于另一个用户子组,使用endpoint检索所有聊天 /me/聊天与 PHP SDK 也失败,并显示建议的代码

  public function listChats(): array
    {
        $graph = $this->getGraph();
        $chats = [];
        $response = $graph->setApiVersion("beta")
            ->createCollectionRequest("GET", "/me/chats")
            ->setReturnType(Chat::class);
        while (!$response->isEnd()) {
            $chats = array_merge($chats, $response->getPage());
        }

        return $chats;
    }

因为while循环从未停止@odata。nextLink始终存在于这些用户的响应中。可能也是一个bug,因为sdk会检查它是否存在。

  $maxRequests = 10;
   while (!$response->isEnd() && $maxRequests > 0) {
     $chats = array_merge($chats, $response->getPage());
     $maxRequests--;
   }

 类似资料:
  • 问题内容: 我知道静态方法在类级别。因此,我知道我不需要创建实例来调用静态方法。但我也知道我可以将静态方法(如LIKE)称为实例方法。这是我感到困惑的地方,因为我期望从null对象调用静态方法(就像在调用实例方法中一样)。我真的很感谢一些解释,为什么我错了一个期望。 这是示例代码: 问题答案: 通过实例调用静态方法不需要实例存在。只要编译器能够确定变量的类型,它就可以在评估表达式并丢弃结果后静态进

  • 我面临的一些问题,没有收到通知在一些电话。我也不接受GCM的意图。这是我打电话给GCM注册时的日志。在像Nexus和Moto这样的手机上,它运行得非常好。但在Lava和Karbonn这样的低端手机上,我就面临着这个问题。 D/PowerManagerService(649):AcquireWakeLockInternal:lock=1114432392,Flags=0x1,tag=“gcm_con

  • 使用指南 - 数据报告 - 概述 - 为什么有些报告没有权限 在百度统计中,无权限报告所属的站点应是“权限站点”,权限站点在右上角站点选择下拉框中有“权限站点”的字样标注,如图所示: 权限站点是其他账户将其自有站点授权给您查看数据的站点,在授权时定义了您的查看和设置权限。如果此报告无权限,说明授权发起者未授权给您。 您可以在“管理->网站列表”的“权限网站”标签下,查看该站点的权限来源账户,如需开

  • 这些keycloakendpoint有什么用?

  • 问题内容: 我正在编写一个简单的项目,一个使用Swing编写的业务应用程序,它使用Hibernate作为后端。我来自Spring,这为我提供了使用hibernate和事务的简便方法。无论如何,我设法让Hibernate工作。昨天,在编写一些代码从数据库中删除bean的同时,我得到了以下信息: 删除代码很简单: 我的是: 其他详细信息:仅在关闭应用程序时,我才会在代码中关闭hibernate会话。这

  • 我使用MVC页面中的Kendo DatePicker值构建了一个模型: 但是,如果我输入值,而不是单击日历并选择日期,它在这里不会得到值。我怎样才能得到这个数据?