java - Android 上的 Microsoft Graph 在检索文件时响应 404

标签 java microsoft-graph-api onedrive

在 microsoft graph explorer 上,我可以轻松检索 excel 文件,但在尝试“active-directory-android-native-v2-master”示例代码时,它返回 404。

另一方面,下一行可以正常工作并正确检索我的信息

final static String MSGRAPH_URL = "https://graph.microsoft.com/v1.0/me";

我添加了所有必需的权限,获取了客户端 ID,运行所有示例指令,阅读文档 + 堆栈溢出流程。

我认为这可能是因为链接编码不正确,所以我修改了 callGraphAPI() 方法以包括:

Uri.Builder builder = new Uri.Builder();
builder.
        scheme("https").
        authority("graph.microsoft.com").
        appendPath("v1.0").
        appendPath("drives").
        appendPath(MY_DRIVE).
        appendPath("items").
        appendPath(FILE_ID).
        appendPath("workbook");
String url = builder.build().toString();

JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET,url/*MSGRAPH_URL*/,
        parameters,new Response.Listener<JSONObject>() {
    @Override
    public void onResponse(JSONObject response) {

但仍然是相同的响应。

我遇到了下一个堆栈溢出答案

404 file not found error when using microsoft graph api

并认为这可能是答案,但后来发现问题已经过时,另一个答案提到它不再正确。

感谢任何帮助。

最佳答案

看来我不知道使用 V2 的示例代码(active-directory-android-native-v2-master),而图形浏览器(正在运行)使用 V1。

这里有一个很棒的 V1 示例代码(active-directory-android-master)“入门”教程:

https://learn.microsoft.com/en-us/azure/active-directory/develop/quickstart-v1-android

示例代码似乎仅适用于 V1。

使用本教程时,除了教程中提到的权限之外,我还需要找到我尝试使用的命令所需的权限。

我使用下一个链接来获取项目的权限:

https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/shares_get

我还添加了 Graph Exlorer 中提到的权限因为如上所述,我尝试使用的命令在那里起作用。

由于Azure站点的权限写得不一样(例如Files.Read写为“读取用户文件”),我使用下一个链接进行翻译:

https://developer.microsoft.com/en-us/graph/docs/concepts/permissions_reference

幸运的是,我不需要使用任何管理员权限,这会使应用程序的注册变得复杂

希望这可以帮助像我这样陷入困境的新手:)

如果我写的任何内容不正确或者您认为我应该添加一些内容,请在下面的评论中告诉我,我会尝试更新

顺便说一句 - 我使用了 Graph Exlorer检测我需要的文件和云端硬盘 ID 项目

关于java - Android 上的 Microsoft Graph 在检索文件时响应 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52223212/

相关文章:

microsoft-graph-api - 使用 Microsoft Graph API - Java 授予管理员许可

javascript - Office365 javascript 文件选取器

java - REST lib 为 Java REST API 提供了什么

java - 在java中从控制台输入空格

c# - Microsoft Graph 使用仅应用程序身份验证从 @outlook.com 帐户读取邮件

sharepoint -/sites/root/sites 请求返回 404 错误 "The Resource Cannot Be Found"

rest - Microsoft Graph API -/drive/root/children 始终为空,即使我的 onedrive 中有文件

java - 如何在 Eclipse 中安装 java 库的源代码?

java - 对 while 循环中的值求平均值

c# - 如何使用 Microsoft Graph API c# SDK 在 DriveItem 上获取 Sharepoint ListItem