Forum Discussion
Rest api usage with Java
- 10 years ago
Check this Github repository satalyst/powerbi-rest-java.
The code snippet
public class Office365Authenticator implements Authenticator { private static final String DEFAULT_AUTHORITY = "https://login.windows.net/common/oauth2/authorize"; private static final String DEFAULT_POWER_BI_RESOURCE_ID = "https://analysis.windows.net/powerbi/api"; private static final boolean DEFAULT_VALIDATE_AUTHORITY = false; private String authority = DEFAULT_AUTHORITY; private String powerBiResourceId = DEFAULT_POWER_BI_RESOURCE_ID; private boolean validateAuthority = DEFAULT_VALIDATE_AUTHORITY; private String nativeClientId; private String tenant; private String username; private String password; private ExecutorService executor; private ReadWriteLock tokenLock = new ReentrantReadWriteLock(); private String cachedToken; private String _authenticate() throws AuthenticationFailureException { try { AuthenticationContext authenticationContext = new AuthenticationContext( authority, validateAuthority, executor ); String result = getAccessToken( authenticationContext, powerBiResourceId, nativeClientId, username + "@" + tenant, password ); if (StringUtils.isEmpty(result)) { throw new AuthenticationFailureException("Returned access token is null."); } return result; } catch (ExecutionException | InterruptedException | IOException e) { throw new AuthenticationFailureException(e); } } private String getAccessToken(AuthenticationContext authenticationContext, String resourceId, String clientId, String username, String password) throws ExecutionException, InterruptedException { return authenticationContext.acquireToken( resourceId, clientId, username, password, null ).get().getAccessToken(); } }
Various resource on the Internet.
RESTful Java client with java.net.URL
Consuming REST services from Java applications
You could find more examples in Github.
But, there aren't any examples about PowerBI Rest API and his Auth in Java :(
I cannot authenticate from Java. I only can from C# and i need Java code
- jocaplan-MSFT10 years agoMicrosoft Employee
Azure AD has a Java library that you can use: https://github.com/AzureAD/azure-activedirectory-library-for-java
- Eric_Zhang10 years agoMicrosoft Employee
Check this Github repository satalyst/powerbi-rest-java.
The code snippet
public class Office365Authenticator implements Authenticator { private static final String DEFAULT_AUTHORITY = "https://login.windows.net/common/oauth2/authorize"; private static final String DEFAULT_POWER_BI_RESOURCE_ID = "https://analysis.windows.net/powerbi/api"; private static final boolean DEFAULT_VALIDATE_AUTHORITY = false; private String authority = DEFAULT_AUTHORITY; private String powerBiResourceId = DEFAULT_POWER_BI_RESOURCE_ID; private boolean validateAuthority = DEFAULT_VALIDATE_AUTHORITY; private String nativeClientId; private String tenant; private String username; private String password; private ExecutorService executor; private ReadWriteLock tokenLock = new ReentrantReadWriteLock(); private String cachedToken; private String _authenticate() throws AuthenticationFailureException { try { AuthenticationContext authenticationContext = new AuthenticationContext( authority, validateAuthority, executor ); String result = getAccessToken( authenticationContext, powerBiResourceId, nativeClientId, username + "@" + tenant, password ); if (StringUtils.isEmpty(result)) { throw new AuthenticationFailureException("Returned access token is null."); } return result; } catch (ExecutionException | InterruptedException | IOException e) { throw new AuthenticationFailureException(e); } } private String getAccessToken(AuthenticationContext authenticationContext, String resourceId, String clientId, String username, String password) throws ExecutionException, InterruptedException { return authenticationContext.acquireToken( resourceId, clientId, username, password, null ).get().getAccessToken(); } }- gopinath9 years agoNew Member
Hello,
I just created the API using above java code and I dont how to check the above mentioned maven project...
can you please provided step by step instructions to check the above API?I.e create dataset,add dataset..
Thanks,
Gopinath Madhavan
- d_u_a8 years agoHelper I
Eric_Zhang
In this code snippet
authority, validateAuthority, executor (authenticationContext )? - How should i fill these values? what do they means ?powerBiResourceId? - Where is this id , what does it means?
nativeClientId - I'm making a web app (not native app) and this will be ApplicationId in Azure?
username + "@" + tenant - I know this
password - I know this