我正在开发OneDrive API,尽管对于开发人员帐户而言,它能够获取用户详细信息,但是尝试通过个人帐户或其他帐户(而不是开发人员帐户)登录时,却得到以下响应:
protocol=http/1.1,
code=401,
message=Unauthorized,
url=https://graph.microsoft.com/v1.0/me
我已经在Azure开发人员控制台中授予了所有“应用程序”以及“委派”权限。
com.squareup.okhttp.Request request = new com.squareup.okhttp.Request.Builder()
.url("graph.microsoft.com/v1.0/me")
.addHeader("Authorization", "Bearer " + accessToken)
.build();
try {
response = okHttpClient.newCall(request).execute();
Log.e(LOG_TAG, response.toString()); // Do something with the response.
}
catch (IOException e) {
e.printStackTrace();
}
return response;
答案 0 :(得分:1)
我们有一个很好的快速入门,这里有30分钟的教程,对于理解权限方面和委托的身份验证很有帮助
https://developer.microsoft.com/en-us/graph/get-started/android
对于用户委派的流程,您不需要那里已同意的应用程序权限。要对/ me进行身份验证,您仅需要根据文档User.Read
https://docs.microsoft.com/en-us/graph/api/user-get?view=graph-rest-1.0&tabs=http
您可以使用https://jwt.ms/并使用访问令牌来验证范围也在令牌中。