Forum Discussion
get Access token using js
- 8 years ago
Hi oflok000,
Based on my research, you may need to use the ADAL.js to get the access_token in pure js code. Here is a similar thread for your reference. :smileyhappy:
Sample Code:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title></title> <script src="https://secure.aadcdn.microsoftonline-p.com/lib/1.0.12/js/adal.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script> window.config = { instance: 'https://login.microsoftonline.com/', tenant: 'common', //COMMON OR YOUR TENANT ID clientId: '49df1bc7-db68-4fb4-91c0-6d93f770d1a4', //This is your client ID redirectUri: 'https://login.live.com/oauth20_desktop.srf', //This is your redirect URI callback: userSignedIn, popUp: true }; var ADAL = new AuthenticationContext(config); function signIn() { ADAL.login(); } function userSignedIn(err, token) { console.log('userSignedIn called'); if (!err) { showWelcomeMessage(); ADAL.acquireToken("https://analysis.windows.net/powerbi/api", function (error, token) { // Handle ADAL Error if (error || !token) { printErrorMessage('ADAL Error Occurred: ' + error); return; } // Get TodoList Data $.ajax({ type: "GET", url: "https://api.powerbi.com/v1.0/myorg/datasets", headers: { 'Authorization': 'Bearer ' + token, }, }).done(function (data) { console.log(data); // Update the UI $loading.hide(); }).fail(function () { printErrorMessage('Error getting todo list data') }).always(function () { // Register Handlers for Buttons in Data Table registerDataClickHandlers(); }); }); } else { console.error("error: " + err); } } function getDataSets(){ var trythis = "Bearer " + token; var request = new XMLHttpRequest(); request.open('GET', 'https://api.powerbi.com/v1.0/myorg/datasets'); request.setRequestHeader('Authorization', trythis); request.onreadystatechange = function () { if (this.readyState === 4) { console.log('Status:', this.status); console.log('Body:', this.responseText); } }; request.send(); } function showWelcomeMessage() { var user = ADAL.getCachedUser(); var divWelcome = document.getElementById('WelcomeMessage'); divWelcome.innerHTML = "Welcome " + user.profile.name; } </script> </head> <body> <button id="SignIn" onclick="signIn()">Sign In</button> <h4 id="WelcomeMessage"></h4> </body> </html>Regards
Hi oflok000,
Based on my research, you may need to use the ADAL.js to get the access_token in pure js code. Here is a similar thread for your reference. :smileyhappy:
Sample Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
<script src="https://secure.aadcdn.microsoftonline-p.com/lib/1.0.12/js/adal.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
window.config = {
instance: 'https://login.microsoftonline.com/',
tenant: 'common', //COMMON OR YOUR TENANT ID
clientId: '49df1bc7-db68-4fb4-91c0-6d93f770d1a4', //This is your client ID
redirectUri: 'https://login.live.com/oauth20_desktop.srf', //This is your redirect URI
callback: userSignedIn,
popUp: true
};
var ADAL = new AuthenticationContext(config);
function signIn() {
ADAL.login();
}
function userSignedIn(err, token) {
console.log('userSignedIn called');
if (!err) {
showWelcomeMessage();
ADAL.acquireToken("https://analysis.windows.net/powerbi/api", function (error, token) {
// Handle ADAL Error
if (error || !token) {
printErrorMessage('ADAL Error Occurred: ' + error);
return;
}
// Get TodoList Data
$.ajax({
type: "GET",
url: "https://api.powerbi.com/v1.0/myorg/datasets",
headers: {
'Authorization': 'Bearer ' + token,
},
}).done(function (data) {
console.log(data);
// Update the UI
$loading.hide();
}).fail(function () {
printErrorMessage('Error getting todo list data')
}).always(function () {
// Register Handlers for Buttons in Data Table
registerDataClickHandlers();
});
});
}
else {
console.error("error: " + err);
}
}
function getDataSets(){
var trythis = "Bearer " + token;
var request = new XMLHttpRequest();
request.open('GET', 'https://api.powerbi.com/v1.0/myorg/datasets');
request.setRequestHeader('Authorization', trythis);
request.onreadystatechange = function () {
if (this.readyState === 4) {
console.log('Status:', this.status);
console.log('Body:', this.responseText);
}
};
request.send();
}
function showWelcomeMessage() {
var user = ADAL.getCachedUser();
var divWelcome = document.getElementById('WelcomeMessage');
divWelcome.innerHTML = "Welcome " + user.profile.name;
}
</script>
</head>
<body>
<button id="SignIn" onclick="signIn()">Sign In</button>
<h4 id="WelcomeMessage"></h4>
</body>
</html>
Regards
Hi,
I would like to get the accesToken of a client.
I have his username, his password and the link for an emebbed report.
this is my link : https://app.powerbi.com/groups/me/reports/my-report-id?ctid=my-client-id
So with all these informations, can i get the access token so i can embed the report on my own ?
I tried to use the javascript's code of "v-ljerr-msft" but it doesn't work with my clientId.
I get this error :
- Christy8 years agoFrequent Visitor
I'm trying to get this flow working myself, so take my advice with a grain of salt, but it appears you have a wrong combination of tenant ID and client ID. Try using just "common" instead of the tenant ID