标签: microsoft-graph-api

当我使用 Microsoft Graph 的访问令牌时,访问失败并响应 400 错误

我尝试在 Java 上使用 Microsoft Graph。我成功获得了访问令牌。

但是,当我通过 HttpURLConnection 使用此令牌时,我的访问被拒绝并从 Microsoft 服务器捕获了 400 错误。

    HttpURLConnection con = null;
    String url_str = "https://graph.microsoft.com/v1.0/me";
    String bearer_token = "EwA4A8l6BA...";

    URL url = new URL(url_str);
    con = ( HttpURLConnection )url.openConnection();
    con.setDoInput(true);
    con.setDoOutput(true);
    con.setUseCaches(false);
    con.setRequestMethod("GET");
    con.setRequestProperty("Authorization","Bearer " + bearer_token);
    con.setRequestProperty("Host","graph.microsoft.com");
    con.connect();

    BufferedReader br = new BufferedReader(new InputStreamReader( con.getInputStream() )); // Error has been occured here.
    String str = null;
    String line;
    while((line = br.readLine()) != null){
        str += line;
    }
    System.out.println(str);
Run Code Online (Sandbox Code Playgroud)

这是错误消息。

线程“main”java.io.IOException 中出现异常:服务器返回 HTTP 响应代码:400 对于 …

java microsoft-graph-api

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

更改 Microsoft Graph API 重定向 Uri 中的“code”参数

我正在构建一个使用 Microsoft Graph API 进行身份验证的 Azure Functions 应用程序。我创建了一个processCode函数作为我的重定向 URI,它采用 Graph API 发送的代码来生成 Graph 令牌。

但是,Azure Functions 在其调用中使用code查询字符串参数来传递函数键。

我是否可以将 Graph API 重定向 URI 配置为使用除 之外的其他查询字符串参数code

本质上,改变

https://myapp/api/processCode?code=GRAPH-CODE (conflicting code parameter)
Run Code Online (Sandbox Code Playgroud)

https://myapp/api/processCode?code=FUNCTIONS-KEY&graphcode=GRAPH-CODE
Run Code Online (Sandbox Code Playgroud)

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

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

如何在 microsoft graph 中添加更多 ccRecipients?

我正在使用 Microsoft Graph 与 Outlook 连接。有人可以帮我解决我的问题吗?我需要添加多个ccRecipientbccRecipient。我的网络应用程序通过 API 发送、接收和读取电子邮件。但我无法向多个收件人发送cc电子邮件bcc。这是我用来发送电子邮件的功能。

编辑:现在 JSON 中的函数没有 2ccRecipients和 2 bccRecipients 。我尝试了多种不同的方式,但是当我在 microsoft graph-explorer 中测试它时,它无法发送到多个地址。

    function sendEmail(){

            getAccessToken(function(accessToken) {
                if (accessToken) {
// Create a Graph client
                    var client = MicrosoftGraph.Client.init({
                        authProvider: (done) => {
// Just return the token
                        done(null, accessToken);
                }
                });

                    var recipient                   = $("#recipient").val();
                    var subject                     = $("#subject").val();
                    var carbon_copies               = $("#carbon_copies").val();
                    var blind_carbon_copies         = $("#blind_carbon_copies").val();
                    var filename_attachment         = $("#filename").text();
                    var attachments_base64          = …
Run Code Online (Sandbox Code Playgroud)

json outlook-restapi microsoft-graph-api

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

如何使用“Microsoft Graph”rest API 按附件名称或主题过滤 Outlook 消息?

我们使用 Microsoft Graph API 将 Outlook 集成到我们的 iOS 应用程序中。我们有一个用例,必须按附件名称或主题过滤 Outlook 邮件。我们使用查询参数来命中图形 API。

\n\n

链接到微软文档。

\n\n

根据上述文档,$search参数用于过滤 Outlook 消息。当点击以下 API 时,我们会得到错误的响应。它\xe2\x80\x99s 返回主题和邮件正文中都有\xe2\x80\x9cTest Mail\xe2\x80\x9d 的邮件。但它应该只返回主题行为 \xe2\x80\x9cTest Mail\xe2\x80\x9d 的邮件。

\n\n
https://graph.microsoft.com/v1.0/me/messages?$search="subject:Test Mail\xe2\x80\x9d \n
Run Code Online (Sandbox Code Playgroud)\n\n

当我们通过点击下面的 API 按附件名称过滤邮件时,我们也会遇到同样的问题。事实上,在这种情况下我们得到的是空响应。

\n\n
https://graph.microsoft.com/v1.0/me/messages?$search=\xe2\x80\x9cattachments:test.png\xe2\x80\x9d \n
Run Code Online (Sandbox Code Playgroud)\n\n

上述 URL 格式是否正确?为什么我们\xe2\x80\x99没有得到期望的响应?请帮助我们解决这个问题。

\n

outlook-restapi microsoft-graph-api

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

有没有办法从 Graph 中检索 OneNote 页面 InkNode 内容?

我可以获取 OneNote 笔记本的内容,但无法从页面获取 InkNode 内容。页面内容返回的 HTML 有一个 HTML 注释,表明不支持 InkNode。

知道什么时候会实施吗?

onenote-api microsoft-graph-api

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

使用 PHP SDK 进行大文件的 Microsoft Graph API 文件上传仍然失败

我目前正在使用microsoft-php-sdk,它非常好。我已成功将小文件从服务器上传到 OneDrive。但当我尝试上传 38MB 的 Powerpoint 文件时却失败了。Microsoft Graph API 文档建议创建上传会话。我以为这就像将 URI 从/content更新到 / createUploadSession一样简单,但它仍然失败。

$response = $graph->createRequest('POST', '/me/drive/root/children/'.basename($path).'/createUploadSession')
      ->setReturnType(Model\DriveItem::class)
      ->upload($path);
Run Code Online (Sandbox Code Playgroud)

我的代码看起来像这样。我很难弄清楚 PHP SDK 文档,并且没有上传会话的示例。有人用过 PHP SDK 来实现这个场景吗?

php upload onedrive microsoft-graph-api

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

如何在 MS Graph 中预览共享文件?

我正在使用 MS Graph 客户端,但在预览共享项目时遇到了麻烦。

 ItemPreviewInfo preview = await graphClient.Me.Drive.Items[id].Preview().Request().PostAsync(); 
Run Code Online (Sandbox Code Playgroud)

给出不存在此类文件的错误,因为它不在我的驱动器中,所以很明显。我知道我可能需要访问共享文件夹,但“raphClient.Me.Drive.SharedWithMe...”没有给出任何项目 ID 规范。

任何帮助,将不胜感激。先感谢您。

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

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

从 Microsoft Graph API 列出用户属性

我们正在为多家公司集成 Azure AD。作为这项工作的一部分,我们必须询问他们系统中的哪些字段需要映射到我们的系统。

因为人们实际上并不每天使用系统名称,所以我们遇到的大多数人对此一无所知。

给定正确的凭据,是否可以获取 User 对象可以返回的所有属性,或者是否已经存在预定义列表?

我能找到的最接近的是这个,但网址显示“以前的版本”,所以我不确定它是否已更改。

我尝试使用 API 通过 API 查找它$select=*,但您可能知道,这只会给出默认的属性列表。

azure-active-directory microsoft-graph-api

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

发送带有大附件的邮件?

我希望使用图形 API 发送带有大附件(最多 20MB)的电子邮件。有没有办法发送带有大附件的电子邮件?

之前对 Graph 的尝试发现了 4MB 的上传限制。我还考虑过将文件上传到 OneDrive 并通过引用附加它,但我相信这会遇到相同的 4MB 限制。

此限制排除了 Microsoft Graph。

我听说旧版 Outlook REST API 能够处理大型文件上传,但是,我今天找不到任何访问 Outlook REST API 的方法,看起来它已被弃用。此外,我从 Microsoft 读到的所有文档都很快鼓励您使用新的 Graph API。

查看 Azure 门户,似乎无法让我的应用程序通过 Outlook API 进行身份验证,这在任何地方都不是一个选项。

作为参考,这里是我一直在 Graph API 中使用的相关片段。

$mailBody = ...
'attachments' => [
    [
        '@odata.type' => '#microsoft.graph.fileAttachment',
        'Name' => 'file.docx',
        'ContentBytes' => $localFile
    ]
 ]
     ...

$response = $this->getGraph()->createRequest("POST", "/users/{primary-user}/sendMail")
                ->attachBody($mailBody)
                ->execute();
Run Code Online (Sandbox Code Playgroud)

php microsoft-graph-api

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

将照片从 Microsoft Graph 客户端 SDK 转换为 Base64String

我正在使用对 Microsoft Graph 的 httpClient 调用的旧实现来获取用户的照片。以下代码可以工作,但我现在使用的是 Graph Client SDK,并且操作略有不同。我在转换代码时遇到了困难,因为在线示例和其他参考文献似乎没有相同的方法。

旧代码:

var response = await httpClient.GetAsync($"{webOptions.GraphApiUrl}/beta/me/photo/$value");
byte[] photo = await response.Content.ReadAsByteArrayAsync();
return Convert.ToBase64String(photo);
Run Code Online (Sandbox Code Playgroud)

新代码:

var graphServiceClient = await graphClient.GetAuthenticatedGraphClientAsync(HttpContext);
Stream photo = await graphServiceClient.Me.Photo.Content.Request().GetAsync();
Run Code Online (Sandbox Code Playgroud)

我已经尝试过这里这里的示例,但我有点迷失,因为ReadAsByteArrayAsync()在新对象上不可用photo

c# microsoft-graph-api

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