У меня проблема, и надеюсь, что вы, ребята, можете мне помочь.
Я хочу создать небольшую страницу для моих коллег, чтобы они могли проверять новейшую информацию на административном портале O365.
Для этого я хочу использовать «API служебных коммуникаций Office 365» (https://manage.office.com/api/v1.0/contoso.com/ServiceComms/Messages)
Я уже зарегистрировал приложение в своей azure -адре, поэтому уже могу получать информацию через Почтальон или Powershell (Invoke-Rest). Но у меня есть проблема, чтобы получить его с JavaScript. С нормальными вариантами отдыха я всегда получаю ошибку CORS. Вот почему я подумал, что я попробую это с библиотекой MSAL. js.
Но я не могу заставить его работать. Может быть, мой Код неправильный?!
И я был немного смущен, потому что в официальных документах говорится, что я должен деактивировать CORS в моем браузере ?! (https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-browser -> при предварительных условиях)
Это не может быть так сложно ... надеюсь, вы можете помочь мне.
Вот мой код:
<!DOCTYPE html>
<script type="text/javascript" src="https://alcdn.msauth.net/lib/1.2.0/js/msal.js"></script>
<script type="text/javascript" src="https://alcdn.msauth.net/lib/1.2.0/js/msal.min.js"></script>
<html lang="en">
<script type="text/javascript">
var Demo;
const msalConfig = {
auth: {
clientId: '2076e785-XXXX-XXXX-XXXX-XXXXXXXXXX'
}
};
const msalInstance = new Msal.UserAgentApplication(msalConfig);
msalInstance.handleRedirectCallback((error, response) => {
// handle redirect response or error
});
var loginRequest = {
scopes: ["user.read", "mail.send"] // optional Array<string>
};
msalInstance.loginPopup(loginRequest)
.then(response => {
// handle response
})
.catch(err => {
// handle error
});
// if the user is already logged in you can acquire a token
if (msalInstance.getAccount()) {
var tokenRequest = {
scopes: ["user.read", "mail.send"]
};
msalInstance.acquireTokenSilent(tokenRequest)
.then(response => {
})
.catch(err => {
// could also check if err instance of InteractionRequiredAuthError if you can import the class.
if (err.name === "InteractionRequiredAuthError") {
return msalInstance.acquireTokenPopup(tokenRequest)
.then(response => {
// get access token from response
// response.accessToken
})
.catch(err => {
// handle error
});
}
});
} else {
// user is not logged in, you will need to log them in to acquire a token
}
var headers = new Headers();
var bearer = "Bearer " + Demo;
var options = {
method: "GET",
headers: headers
};
var graphEndpoint = "https://manage.office.com/api/v1.0/contoso.onmicrosoft.com/ServiceComms/Messages";
fetch(graphEndpoint, options)
.then(resp => {
//do something with response
});
</script>
</html>