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.
- iperezal10 years agoFrequent Visitor
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