小编Mar*_*eur的帖子

/me/memberOf 显示用户是其“嵌套”成员的组

我正在尝试使用 Microsoft Graph API 来整理应用程序中的菜单。例如,我有一个链接A,要求用户成为名为 的安全组的一部分graphsec_A

这是一个 Node 应用程序,因此我调用/me/memberOf并返回一个对象数组,我可以过滤这些对象以查看是否displayNameequals graphsec_A

如果我直接将用户添加到组中,则当我以这种方式检查时它会起作用。然而,就我而言,我想将整个部门添加到该组中(以及其他一些部门和个人)。当我将组添加到 时graphsec_A,该成员身份不会在 中返回/me/memberOf

我尝试过摆弄$expand,但我似乎无法让它工作,但显示用户所属的所有组的扩展版本。

有什么方法可以使这项工作无需单独添加每个人?

microsoft-graph-api

4
推荐指数
1
解决办法
1779
查看次数

是否可以向MS team bot发送语音命令?

我正在使用MS bot框架开发一个机器人,并将与MS团队集成.但我有一个挑战,通过MS团队为这个机器人启用语音命令.即使bot模拟器有一个小鼠标按钮,但它也不能用于发送语音命令 在此输入图像描述

是否可以与MS团队一起做到这一点?我无法找到有关此问题的任何文件.我在这个项目中使用NodeJS.

botframework microsoft-teams

4
推荐指数
2
解决办法
460
查看次数

通过客户凭证流进行图式身份验证-我的应用程序是否只能访问我的用户帐户或整个组织?

我有一个守护程序脚本,需要访问我的Office 365收件箱才能阅读消息。目前,我正在将基本身份验证与Outlook Rest API的V1.0一起使用,效果很好,但由于已终止,因此我希望转向Graph API和OAuth 2.0身份验证。客户credentails流,如所描述这里似乎是一个守护进程脚本是最好的选择,但是,我很困惑的权限范围的应用都会有。我在上面链接的文章看起来好像该应用程序可以访问整个组织,但我只需要脚本即可访问我自己的帐户。我不希望我的应用访问其他用户的帐户,并且我认为我们的IT部门也不允许这样做。

那么,使用客户端凭据身份验证时应用程序权限的范围是什么? 如果答案是“整个组织”,那么是否有办法将权限限制为仅我的帐户?如果没有,我还有其他选择吗?

编辑:这里提出类似的问题,但没有得到任何答案。

outlook-restapi microsoft-graph

4
推荐指数
1
解决办法
404
查看次数

如何在特定时间间隔内从收件箱读取我的消息或从特定电子邮件地址发送的邮件?

我正在使用图形浏览器 API 来读取我帐户的电子邮件。这个想法是将电子邮件地址和日期间隔传递给图形 API,它应该返回与此电子邮件关联的相同消息。它可能来自已发送的项目,也可能来自收件箱。我正在使用下面的API:

https://graph.microsoft.com/v1.0/me/messages?$Search="Aj****@t**maxa****icas.com
and Sent >= 2018-05-09"
Run Code Online (Sandbox Code Playgroud)

但这是从我的收件箱发送的消息,而不是从发送的电子邮件发送的消息。任何人都可以帮助我吗?谢谢。

outlook-restapi microsoft-graph-api

4
推荐指数
1
解决办法
4104
查看次数

如何查明我的应用是否已获得管理员同意?

我正在使用 Microsoft Graph 中的安全 API 编写一个 Web 应用程序,并且正在使用 Azure AD 进行身份验证,但访问 API 所需的权限需要使用我的应用程序的每个租户的管理员同意。

\n\n

如何检查租户管理员是否同意我的应用程序?这样我就知道是将用户发送到常规登录流程还是管理员同意流程。

\n\n

是否可以对 Azure AD 进行 REST 调用以获取此信息?我\xe2\x80\x99已经尝试使用oAuth2PermissionGrant ,但这似乎只适用于对象ID,而且我只有我的应用程序/客户端ID。

\n\n

编辑

\n\n

我对我的应用程序中需要哪些范围感到困惑,但事实证明,当我添加管理员时,仅委派权限,例如SecurityEvents.Read.All应用程序注册门户SecurityEvents.ReadWrite.All,并且仅使用User.Read我的应用程序中的权限来请求用户的基本信息。请求访问令牌时有两种不同的结果;

\n\n
    \n
  • 如果管理员没有给予我的应用程序同意,那么访问令牌将只包含User.Read范围。
  • \n
  • 如果管理员已同意,则访问令牌将包含User.ReadSecurityEvents.Read.AllSecurityEvents.ReadWrite.All委托范围。即使我的应用程序只请求User.Read.
  • \n
\n\n

我发现我可以使用它来通过检查访问令牌范围来确定管理员是否同意我的应用程序。如果它包含SecurityEvents.Read.All, 或SecurityEvents.ReadWrite.All那么用户可以继续在应用程序中。但如果这些委派的权限不在范围内,那么我可以提示https://login.microsoftonline.com/common/adminconsent?client_id=<APP ID>&state=12345&redirect_uri=http://localhost/myapp/permissions管理员同意流程请求将权限添加到租户。

\n\n

谢谢@marc-lafleur,我正在使用管理员帐户来玩oAuth2PermissionGrantGraph Explorer,直到你指出为止,我没有发现先有鸡还是先有蛋的情况。

\n

azure-active-directory microsoft-graph-api

4
推荐指数
1
解决办法
2325
查看次数

使用适用于Microsoft Teams的REST API访问用户状态

我想查询我自己的存在和其他用户在团队中的存在.理想情况下,我希望在更改时收到通知,以便我可以更改内部状态.

图API现在似乎没有此功能.

microsoft-teams

4
推荐指数
2
解决办法
1062
查看次数

来自 Graph 的 base64 转换照片显示为损坏的图像

我绞尽脑汁(和其他人)试图让它发挥作用。我正在通过 MS Graph API 拉一张照片 - 这部分工作正常。我能够接收数据(以字节为单位)。但是,我无法将图像正确转换为附加为文件并发布。

我已经阅读了几篇关于 SO 和 GH 的帖子,并尝试了大约 10 种不同的 npm 包和风格(btoa、atob 等......出于绝望),包括来自Graph docs的 JS 示例。没有任何解决方案奏效。npm 包都产生彼此不同的输出,当我拍摄照片并上传到在线 base64 转换器时,它们都与输出不匹配。另外,如果我进行在线转换并将输出字符串直接放入代码中,它就可以工作。

这是我的代码的当前迭代。任何帮助,将不胜感激。

var optionsPhoto = {
  url: "https://graph.microsoft.com/v1.0/me/photo/$value",
  method: "GET",
  headers: {
    Authorization: "Bearer " + token
  }
};

await request(optionsPhoto, function callback(error, response, body) {
  if (!error && response.statusCode == 200) {
    photoResponse.data = [
      {
        "@odata.type": "#microsoft.graph.fileAttachment",
        contentBytes: body.split(",").toString("base64"),
        contentLocation: "https://graph.microsoft.com/v1.0/me/photo/$value",
        isinline: true,
        Name: "mypic.jpg"
      }
    ];
    photoResponse.ContentType = response.headers["content-type"].toString();
    photoResponse.Base64string = (
      "data:" …
Run Code Online (Sandbox Code Playgroud)

node.js node-request microsoft-graph-api

4
推荐指数
1
解决办法
1445
查看次数

使用 Microsoft Graph API(不是 Azure AD API)在 Azure Active Directory 中查询自定义属性

我有一个使用 Azure Active Directory 授权(使用 ADAL)的 Asp.Net 网站,它返回基本属性,例如用户的显示名称。我想要的是使用 Microsoft Graph API(不是 Azure AD API)获取自定义属性(例如,employeeID)

图形 API 查询示例:

string graphRequest = string.Format(CultureInfo.InvariantCulture,
    "{0}{1}/users?api-version={2}&$filter=startswith(userPrincipalName, '{3}')",
    graphApiEndpoint,
    tenant,
    graphApiVersion,
    "SearchText.Text");
Run Code Online (Sandbox Code Playgroud)

c# azure-active-directory microsoft-graph-api

4
推荐指数
1
解决办法
2640
查看次数

如何使用 Microsoft Graph 客户端添加扩展?

我想使用 GraphClient 向用户添加扩展。我在任何地方都找不到合适的 C# 代码。任何人都可以帮忙吗?

Dictionary<string, object> addData = new Dictionary<string, object> {
    {
    "HoloFlag",
    currentUser.UserPrincipalName
    }
};

var extPatchObject = new OpenTypeExtension();

extPatchObject.ExtensionName = "com.holobeam3.extension";
extPatchObject.AdditionalData = addData;

try {
    var extension = await _graphClient
        .Me
        .Extensions
        .Request()
        .AddAsync(extPatchObject);
    Debug.Log(extension);
} catch (Exception ex) {
    Debug.Log(ex.Message);
}
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所尝试的。这将返回“访问被拒绝”异常,但在访问用户的现有扩展或其他Me端点时没有问题。

c# microsoft-graph-sdks microsoft-graph-api

4
推荐指数
1
解决办法
1127
查看次数

通过 Microsoft Graph API 检索 SharePoint Online 对象权限

我需要映射所有 SharePoint Online 对象(网站、列表、列表项、附件、文件、文件夹)的权限。这似乎可以通过 CSOM API 实现,但在 Microsoft Graph 中没有找到类似的东西。

以下查询成功检索请求的项目

https://graph.microsoft.com/beta/sites/root/Lists/{List ID}/items/{item ID}/
Run Code Online (Sandbox Code Playgroud)

但以下查询没有按我的预期返回权限:

https://graph.microsoft.com/beta/sites/root/Lists/{List ID}/items/{item ID}/permissions
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

{
    "error": {
        "code": "BadRequest",
        "message": "Resource not found for the segment 'permissions'.",
        "innerError": {
            "request-id": "ab9f4cfe-f0e1-433b-9767-96d4b3e58c59",
            "date": "2019-03-18T18:52:21"
        }
    }
}  
Run Code Online (Sandbox Code Playgroud)

以下查询也收到相同的错误:

https://graph.microsoft.com/beta/sites/root/Lists/{List ID}/permissions
Run Code Online (Sandbox Code Playgroud)

一年前有人问过非常类似的问题,答案是不可能。

现在可以吗?如果是的话我做错了什么?

sharepoint-online microsoft-graph-api

4
推荐指数
1
解决办法
3459
查看次数