标签: microsoft-graph-api

通过objectid获取多个用户/组

我有一个用户/组的 objectid 列表,我想解析它们以显示名称和个人资料照片。我不想对每个 objectid 发出单独的请求,而是希望对它们进行批处理并在一个响应中获取所有结果。有可用的 API 吗?从我所做的搜索来看,我找不到类似的东西。如果这样的 API 不存在,是否有任何技巧可以提高效率?

谢谢,波阿斯

microsoft-graph-api

6
推荐指数
1
解决办法
5817
查看次数

如何在 MS Graph 中检索 DriveItems 的自定义列

我正在尝试使用 Graph API 检索 Sharepoint 文档库中的文件层次结构。由于文档库存储在“驱动器”中(将其称为 OneDrive 在技术上是否正确?),我使用端点/drives来获取文件列表,如下所示:

https://graph.microsoft.com/beta/drives/{driveid}/root/children
Run Code Online (Sandbox Code Playgroud)

我想从通过 Sharepoint 查看这些项目时存在的一些自定义列中获取信息。使用?expand=fields不起作用,因为fields仅存在于端点的 listItem 对象中/sites,而不存在于端点driveItem的对象中/drives。如果我尝试从单个driveItem获取listItem(从OneDrive遍历图表到Sharepoint),然后扩展字段,例如

https://graph.microsoft.com/beta/drives/{driveid}/items/{driveItemId}/listItem?expand=fields
Run Code Online (Sandbox Code Playgroud)

这会检索内置列(Author、DocIcon 和其他一些列),但似乎不会检索自定义列。我还尝试从端点获取文件列表/sites,并使用?expand=fields将获取自定义列,但它从每个子文件夹获取每个文件,而不是当前文件夹路径。但我觉得这值得有一个自己的问题。

是否可以从driveItems 检索自定义列信息?

sharepoint onedrive microsoft-graph-api

6
推荐指数
2
解决办法
4602
查看次数

如何使用 Graph API 读取 Azure B2C 自定义属性(与 Azure AD Graph 兼容)

截至今天,文档建议使用 Microsoft Graph 而不是 Azure AD Graph API 来访问 Azure AD/B2C 资源。

之前,使用 Azure AD Graph API,我们可以使用https://graph.windows.net/[tenant]/users/1a2a9c4d-fc59-4fd9-ad14-b72b549cdf6a?api-version=2013-11-08等查询

响应包含 Azure B2C 自定义属性(在 Azure 门户上创建)

{
        "odata.metadata": "https://graph.windows.net/<tenant>/$metadata#directoryObjects/Microsoft.DirectoryServices.User",
        "value": [
            {
                "objectId": "00000eab-603a-4de2-9d25-d3821e7d6583",
                ...
                "extension_3a4189d71ad149c6ab5e65ac45bd6add_MyAttribute1": "something"
            }
        ] 
}
Run Code Online (Sandbox Code Playgroud)

Graph API 不会发生这种情况,仅返回一些“基本”属性 https://graph.microsoft.com/v1.0/users/00000eab-603a-4de2-9d25-d3821e7d6583

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
    "id": "00000eab-603a-4de2-9d25-d3821e7d6583",
    ...
}
Run Code Online (Sandbox Code Playgroud)

还尝试显式选择属性但未返回扩展值

...graph.microsoft.com/v1.0/users/00000eab-603a-4de2-9d25-d3821e7d6583/?$select=id,extension_3a4189d71ad149c6ab5e65ac45bd6add_MyAttribute1

如何使用 Graph API 读取 Azure B2C 自定义属性?

azure-ad-b2c microsoft-graph-api

6
推荐指数
1
解决办法
9108
查看次数

在哪里可以找到驱动器项目的 {parent-id}?

我正在尝试使用 Microsoft Graph 将文件上传到我的组织的 SharePoint,但找不到{parent-id}以下终结点:

PUT /users/{user-id}/drive/items/{parent-id}:/{filename}:/content
Run Code Online (Sandbox Code Playgroud)

应该{parent-id}id文件将插入到的父目录吗?

onedrive microsoft-graph-api

6
推荐指数
1
解决办法
4942
查看次数

Microsoft 图形查询:用户是组成员吗?

React 应用程序查询 Microsoft Graph 以发现用户是否是特定 Active Directory 组的成员。现在,有这样的路线:

https://graph.microsoft.com/v1.0/me/memberOf
Run Code Online (Sandbox Code Playgroud)

上面的内容在应用程序中确实有效。它返回一个包含所有用户组的(相当大的)对象,因此我可以迭代列表,但最好直接检查用户是否是单个的成员。

鉴于我已经可以看到所有组的列表,这似乎并不困难,但我没有找到这样做的途径。

我错过了一些明显的东西吗?

谢谢。

PS 如果我可以在不需要应用程序注册的管理员权限的情况下执行此操作,那就太好了。

microsoft-graph-api

6
推荐指数
1
解决办法
1万
查看次数

Microsoft Graph API - 列出用户登录时使用的所有权限/范围

我在https://apps.dev.microsoft.com上有多个应用程序,用户可以使用他们的 Microsoft 帐户从我的网站登录。每个都需要不同的权限/范围集,例如有些只需要User.Read但有些需要等等Directory.Read.Alloffline_access

有没有办法查询 Microsoft Graph API 以获取用户登录时使用的所有权限/范围(= 同意)?

例如GET https://graph.microsoft.com/beta/currentPermissions

目标是了解是否允许用户在应用程序上运行特定的 API 调用。这将防止无用的 API 调用

{
    "code": "Authorization_RequestDenied",
    "message": "Insufficient privileges to complete the operation."
}
Run Code Online (Sandbox Code Playgroud)

回应。

浏览文档没有结果。

permissions microsoft-graph-api

6
推荐指数
1
解决办法
6621
查看次数

Microsoft Graph AD 用户或人员 API 来搜索所有用户?

我正在尝试在我的应用程序中构建功能,供“管理员”将用户从其 AD 组分配到某些组,这些组进一步分配给应用程序特定的角色。基本上是一个简单的管理组件。

将具有 oid 的用户添加到组中很容易,我面临的问题是找到实际的用户。

目前,我看到的唯一选择是向 v1.0/users 发出多个 api 请求(最多 999 个项目)并将它们全部分组在内存中,然后提供一个简单的搜索功能来缩小范围。

我还使用 v1.0/me/people 端点来搜索用户,但这并没有显示 AD 组中的所有用户,只是显示他们处理的相关用户,所以不太有用。

我是否可以利用任何其他 api 端点来仅对同一活动目录的成员进行搜索?

active-directory azure-active-directory microsoft-graph-api

6
推荐指数
1
解决办法
7164
查看次数

通知端点验证不适用于 Laravel Endpoint

我正在使用 Microsoft Graph,需要设置一个 Webhook 来接收电子邮件和日历事件的更改。我能够让它与我的 PHP Laravel 应用程序一起工作,但现在我正在尝试订阅通知,我在验证notificationUrl指向我的公共服务器的 时遇到了问题。

用于创建 Webhook 的脚本返回以下错误:

Client error: POST https://graph.microsoft.com/v1.0/subscriptions resulted in a 400 Bad Request response: 
{ 
  "error": { 
     "code": "InvalidRequest", 
     "message": "Subscription validation request failed. Response must ex (truncated...)
Run Code Online (Sandbox Code Playgroud)

我相信被截断的部分是

订阅验证请求失败。必须对此请求响应 200 OK。

这是我创建订阅的代码:

$data = [
    "changeType" => "created",
    "notificationUrl" => "https://anatbanielmethod.successengine.net/office365/webhooks/events",
    "resource" => "me/events",
    "expirationDateTime" => "2018-12-20T18:23:45.9356913Z",
    "clientState" => "secret",
];

$result = $graph->createRequest('POST', '/subscriptions')
    ->attachBody($data)
    ->execute();
Run Code Online (Sandbox Code Playgroud)

这是我的方法notificationUrl

public function events()
{
    //if validationToken exists return …
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-5 microsoft-graph-api

6
推荐指数
1
解决办法
2883
查看次数

当没有附件时,如何从 Microsoft Graph 检索嵌入图像数据?

我正在使用 Microsoft Graph 从邮箱中提取电子邮件数据。当我获取内容时,我发现嵌入的图像内容如下:

<img id="_x0000_i1029" 
     width="1366" 
     height="672" 
     data-outlook-trace="F:1|T:1" 
     src="cid:image005.png@01D4DE3D.90A3C410" 
     style="width:14.2291in; height:7.0in">
Run Code Online (Sandbox Code Playgroud)

当该属性hasAttachments为 true 时,我会查找匹配并替换内容的图像,效果很好。问题是我在消息上看到这样的嵌入图像标签,其中hasAttachments是错误的。

我在哪里可以获得图像数据 图表显示消息没有附件,但显然有嵌入图像?

请注意,图像在 Outlook 网页版 中呈现,带有如下标记:

<img data-imagetype="AttachmentByCid"        
     originalsrc="cid:image005.png@01D4DE3D.90A3C410" 
     data-custom="AAMkADY1YjgxM2Y4LTE5NTUtNDBjMy1iZDY0LWIzN..." 
     naturalheight="672" 
     naturalwidth="1366" 
     src="https://attachments.office.net/owa/mailboc@mydomain.onmicrosoft.com/service.svc/s/GetAttachmentThumbnail?id=AAMkADY1YjgxM2Y4LTE5NTUtNDBjMy1iZDY0LWIzN...&amp;thumbnailType=2&amp;owa=outlook.office365.com&amp;scriptVer=2019031102.10&amp;X-OWA-CANARY=kKWSUkiFW0WjlPXXXXXXXXX.&amp;token=eyJhbGciOiJSU...&amp;animation=true" 
     id="_x0000_i1029" 
     data-outlook-trace="F:1|T:1" 
     style="width: 1024.49pt; height: 504pt; cursor: pointer;" 
     crossorigin="use-credentials" >
Run Code Online (Sandbox Code Playgroud)

microsoft-graph-mail microsoft-graph-api

6
推荐指数
1
解决办法
3696
查看次数

AcquireTokenInteractive - MSAL 中的问题

我正在使用MsalAcquireTokenInteractive使用 Microsoft Graph SDK

简单的代码

try
{
   string[] scopes = { "user.read", "files.read" };
    IPublicClientApplication app = PublicClientApplicationBuilder.Create(appId).WithRedirectUri(redirectUri).Build();
    AuthenticationResult result = null;
    var accounts = await app.GetAccountsAsync();
    try
    {
        result = await app.AcquireTokenSilent(scopes, accounts.FirstOrDefault()).ExecuteAsync();
    }
    catch (MsalUiRequiredException ex)
    {
        try
        {
            result = await app.AcquireTokenInteractive(scopes).ExecuteAsync();
        }
        catch (MsalException X)
        {
            ViewBag.ST = X.Message;
        }
        catch (Exception X)
        {
            ViewBag.ST = X.Message;
        }
    }               
}
catch (Exception X)
{

    ViewBag.ST = X.Message;
}
Run Code Online (Sandbox Code Playgroud)

我试图获得用户的同意以允许我的应用程序读取数据,但是当代码到达它时,app.AcquireTokenInteractive(scopes).ExecuteAsync();它只会继续无限加载。

肯定在做一些奇怪的事情,知道那是什么吗?

asp.net-mvc azure-ad-msal microsoft-graph-api

6
推荐指数
1
解决办法
4057
查看次数