android 上的 Microsoft Graph,在检索文件时响应 404
Microsoft Graph on android, responds 404 when retrieving file
在 Microsoft Graph Explorer 上,我能够轻松检索 excel 文件,但是在尝试 "active-directory-android-native-v2-master" 示例代码时,它 returns 404.
另一方面,下一行可以正确检索我的信息
final static String MSGRAPH_URL = "https://graph.microsoft.com/v1.0/me";
我添加了所有必需的权限,获得了客户端 ID,运行 所有示例说明,阅读文档 + stack over flow。
我认为可能是因为 link 编码不正确,所以我修改了 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) 的示例代码,而 graph explorer (which正在工作)使用 V1.
V1 示例代码 (active-directory-android-master) 在这里有很棒的 "getting started" 教程:
https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-v1-android
示例代码似乎仅适用于 V1。
使用本教程时,除了本教程中提到的权限外,我还需要找到我尝试使用的命令所需的权限。
我使用了下一个link来获取项目的权限:
https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/shares_get
我还添加了 Graph Exlorer 中提到的权限,因为如前所述,我尝试使用的命令在那里工作。
由于Azure站点的权限写的不一样(例如Files.Read写成"Read user files")我用下一个link来翻译:
https://developer.microsoft.com/en-us/graph/docs/concepts/permissions_reference
幸运的是我不需要使用任何管理员权限,这会使应用程序的注册变得复杂
希望这对像我这样苦苦挣扎的新手有帮助:)
如果我写的有任何不正确的地方,或者您认为我应该添加一些东西,请在下面的评论中告诉我,我会尝试更新
顺便说一句 - 我使用 Graph Exlorer 来检测我需要的文件和驱动器 ID 项目
在 Microsoft Graph Explorer 上,我能够轻松检索 excel 文件,但是在尝试 "active-directory-android-native-v2-master" 示例代码时,它 returns 404.
另一方面,下一行可以正确检索我的信息
final static String MSGRAPH_URL = "https://graph.microsoft.com/v1.0/me";
我添加了所有必需的权限,获得了客户端 ID,运行 所有示例说明,阅读文档 + stack over flow。
我认为可能是因为 link 编码不正确,所以我修改了 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) 的示例代码,而 graph explorer (which正在工作)使用 V1.
V1 示例代码 (active-directory-android-master) 在这里有很棒的 "getting started" 教程:
https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-v1-android
示例代码似乎仅适用于 V1。
使用本教程时,除了本教程中提到的权限外,我还需要找到我尝试使用的命令所需的权限。
我使用了下一个link来获取项目的权限:
https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/shares_get
我还添加了 Graph Exlorer 中提到的权限,因为如前所述,我尝试使用的命令在那里工作。
由于Azure站点的权限写的不一样(例如Files.Read写成"Read user files")我用下一个link来翻译:
https://developer.microsoft.com/en-us/graph/docs/concepts/permissions_reference
幸运的是我不需要使用任何管理员权限,这会使应用程序的注册变得复杂
希望这对像我这样苦苦挣扎的新手有帮助:)
如果我写的有任何不正确的地方,或者您认为我应该添加一些东西,请在下面的评论中告诉我,我会尝试更新
顺便说一句 - 我使用 Graph Exlorer 来检测我需要的文件和驱动器 ID 项目