我已经在azure活动目录中创建了azure OAuth连接设置,并且我使用了azure图形API“ https://graph.microsoft.com/v1.0/me/”来获取用户详细信息。
我在邮递员中调用了此API,并在“授权”中传递了用户令牌,然后我获得了所有用户详细信息。调用此“ https://graph.microsoft.com/v1.0/me/” API时,邮递员提供了以下响应。
例如。
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
"businessPhones": [],
"displayName": "raman",
"givenName": "kuamr",
"jobTitle": null,
"mail": null,
"mobilePhone": null,
"officeLocation": null,
"preferredLanguage": null,
"surname": "sdf-890b52347751",
"userPrincipalName":
"kumar_google.onmicrosoft.com",
"id": "dsfc-29c6827f2fbe"
}
但是现在我需要在node.js中调用此API。如何在node.js中调用此API,以及如何获得邮递员收到的响应。
答案 0 :(得分:0)
这里是您可以逐步进行的code sample。
它使用microsoft-graph-client来调用Microsoft Graph。
passport-azure-ad用于认证和获取访问令牌,simple-oauth2用于令牌管理。
这是使用访问令牌调用enpoint的相关代码(在第3步中),但是对您来说,执行详细的步骤以了解完整流程将是有益的。
public LiveData<List<FlightPlan>> getFlightPlans() {
Log.d(TAG, "GET_FLIGHT_PLANS");
final MutableLiveData<List<FlightPlan>> data = new MutableLiveData<>();
mRestApi.getFlightPlanList().enqueue(new Callback<List<FlightPlan>>() {
@Override
public void onResponse(Call<List<FlightPlan>> call, Response<List<FlightPlan>> response) {
if (response.code() == 200) {
List<FlightPlan> temp = response.body();
for (FlightPlan flightPlan : temp) {
Log.d(TAG + "res", flightPlan.toString());
}
data.postValue(response.body());
Log.d(TAG + "res", response.toString());
}
}
@Override
public void onFailure(Call<List<FlightPlan>> call, Throwable t) {
List<FlightPlan> flightPlans = new ArrayList<>();
flightPlans.add(new FlightPlan(0, "Test", 3.551, 50.52, 3.55122, 50.52625));
data.postValue(flightPlans);
Log.d(TAG, t.getMessage());
}
});
return data;
}