使用volley库从 android调用 GET https://graph.microsoft.com/v1.0/me/calendars API 时出现意外的响应代码 Http 401错误。
我已经添加了所有必需的权限,例如 Calendars.Read、Calendars.Read.Shared、Calendars.ReadWrite、Calendars.ReadWrite.Shared 等
历史 :
我已经设置了用于从以下链接调用 Microsoft Graph API 的 android 项目: https ://docs.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-android
在 gradle 构建文件中使用依赖项:实现 'com.microsoft.identity.client:msal:0.3.+'
我能够从 android 应用程序登录和注销。
我还可以访问 https://graph.microsoft.com/v1.0/me API 并从 microsoft 服务器获得适当的响应。
但在其他 Graph API 中出现错误。请在下面找到日历 API 调用的连接方法:
用于日历 API 的 volloy 网络调用
/* Make sure we have a token to send to graph */
if (authResult.getAccessToken() == null) {
return;
}
RequestQueue queue = Volley.newRequestQueue(this);
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, "https://graph.microsoft.com/v1.0/me/calendars",
null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
/* Successfully called graph, process data and send to UI */
Log.d(TAG, "Response: " + response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d(TAG, "Error: " + error.toString());
}
})
{
@Override
public Map<String, String> getHeaders() {
Map<String, String> headers = new HashMap<>();
headers.put("Authorization", "Bearer " + authResult.getAccessToken());
return headers;
}
};
Log.d(TAG, "Adding HTTP GET to Queue, Request: " + request.toString());
request.setRetryPolicy(new DefaultRetryPolicy(3000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
queue.add(request);
来自上述 API 调用的响应: https ://graph.microsoft.com/v1.0/me/calendars 的意外响应代码 401
请帮助我使用 volley 类通过 android 应用程序调用 Graph API。