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,
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 :
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