domoinc / domo-java-sdk Goto Github PK
View Code? Open in Web Editor NEWJava - Domo API SDK
Home Page: https://developer.domo.com/
License: MIT License
Java - Domo API SDK
Home Page: https://developer.domo.com/
License: MIT License
We have recently started getting the following error intermittently while trying to list the datasets.
Caused by: com.domo.sdk.request.RequestException: Error making request url:https://api.domo.com/v1/datasets?limit=49&offset=0 reponseBody:{\"error\":\"invalid_token\",\"error_description\":\"Cannot convert access token to JSON\"}\n\tat com.domo.sdk.request.Transport.getJson(Transport.java:40)\n\tat com.domo.sdk.datasets.DataSetClient.list(DataSetClient.java:81)
Any suggestions?
We use com.domo.sdk.datasets.DataSetClient.list to get hold of the dataset Id, given a dataset name. Is there a better way to resolve a dataset name to id? Thanks!
Hi.
My codes for exporting dataset as csv file were performing correctly until since 28 Nov 2018.
But now it is in trouble with the follow error message:
Exception in thread "main" com.domo.sdk.request.RequestException: Error making request url:https://api.domo.com/v1/datasets/b56ef383-cbb4-4b94-bb14-06c89b0b193c/data?includeHeader=true responseBody:<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Error 406 Not Acceptable</title>
</head>
<body><h2>HTTP ERROR 406</h2>
<p>Problem accessing /error. Reason:
<pre> Not Acceptable</pre></p><h3>Caused by:</h3><pre>com.domo.bedrock.service.exception.UnauthorizedException: Full authentication is required to access this resource
at com.domo.gateway.config.security.OAuthAuthenticationProvider.values(OAuthAuthenticationProvider.java:39)
at com.domo.gateway.config.security.OAuthAuthenticationProvider.getCustomer(OAuthAuthenticationProvider.java:48)
at com.domo.gateway.config.security.OAuthLoggingRequestFilter.doFilterInternal(OAuthLoggingRequestFilter.java:50)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationProcessingFilter.doFilter(OAuth2AuthenticationProcessingFilter.java:176)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at com.domo.bedrock.maestro.web.ServiceLogFilter.doFilterInternal(ServiceLogFilter.java:158)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at com.domo.gateway.config.security.HttpRedirectionDetectionFilter.doFilterInternal(HttpRedirectionDetectionFilter.java:61)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:106)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:159)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:499)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:258)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Thread.java:748)
</pre>
<hr><i><small>Powered by Jetty://</small></i><hr/>
</body>
</html>
at com.domo.sdk.request.Transport.getCsv(Transport.java:110)
at com.domo.sdk.datasets.DataSetClient.exportData(DataSetClient.java:151)
at ExportDataExample.dataSetClient_smokeTest(ExportDataExample.java:96)
at test.main(test.java:17)
Since I did not do any change to the code, I suppose there may be some changes in the api.
Do you have any suggetions?
Thank you.
I tried the following API, but cannot update description and name of DataSet metadata.
https://developer.domo.com/docs/data-apis/data#API%20-%20Update%20DataSet%20MetaData
Why?
Getting the following warning log repeatedly:
WARNING: A connection to https://api.domo.com/ was leaked. Did you forget to close a response body? To see where this was allocated, set the OkHttpClient logger level to FINE: Logger.getLogger(OkHttpClient.class.getName()).setLevel(Level.FINE);```
The link to the Client Test File is broken:
Please fix.
"Based on the current timeline, builds that use JCenter will be able to resolve dependencies until February 1, 2022 without changes. After that date, there are no guarantees that you will be able to build your software if you continue to use JCenter." from https://blog.gradle.org/jcenter-shutdown
The recommendation is to publish these packages to maven central.
Some helpful documentation for doing so:
https://blog.sonatype.com/dear-bintray-and-jcenter-users-heres-what-you-need-to-know-about-the-central-repository
If you create a client and immediately try to export data, the call fails with a 406
error. This is due to the first call trying to make the oauth token, but keeping the export text/csv
call.
As a work around, call get
the dataset first then call the export:
dsClient.get(dataSetId)
dsClient.exportDataToFile(dataSetId,true, f);
I'll release a fix for this shortly.
I have tried using version 0.4.2 and 0.4.3. But they don't contain Java classes as below:
Version 0.4.1 contains Java classes but I would like to use DataSetClient#query method that not contained in version 0.4.1.
I am trying to use the Java SDK to access a stream, when I run the app I get the following error
Exception in thread "main" com.domo.sdk.request.RequestException: Error making request url:https://api.domo.com/v1/streams/662?fields=all reponseBody:{"status":401,"statusReason":"Internal Server Error","path":"/v1/streams/662","message":"com.domo.bedrock.service.exception.UnauthorizedException: Full authentication is required to access this resource","toe":"O6Q67O9N7H-U3ALR-NVA7L"}
When I defined it in maven with API version 0.4.0, it failed to load.
I think it is because bintray-domo is disabled.
Is there any alternative repository?
Is there any plan to publish it to maven central in the future?
Failed to read artifact descriptor for com.domo:domo-java-sdk-all:jar:0.4.0:
Could not transfer artifact com.domo:domo-java-sdk-all:pom:0.4.0 from/to bintray-domo (https://dl.bintray.com/domoinc/domo-java-sdk):
Authorization failed for https://dl.bintray.com/domoinc/domo-java-sdk/com/domo/domo-java-sdk-all/0.4.0/domo-java-sdk-all-0.4.0.pom 403 Forbidden
Hello,
I am using DOMO SDK version 0.2.0 with Maven.
I tried to specify proxy host and port, but couldn't find any good modification point.
It would be nicer if we could specify proxy host and port like this:
//Build an SDK configuration
Config config = Config.with()
.clientId("MY_CLIENT_ID")
.clientSecret("MY_CLIENT_SECRET")
.apiHost("api.domo.com")
.useHttps(true)
.proxyHost("myproxyhost")
.proxyPort(myproxyport)
.scope(USER, DATA)
.httpLoggingLevel(HttpLoggingInterceptor.Level.BODY)
.build();
Is proxy usage supported in DOMO SDK?
Is there any good implementation way to specify proxy settings?
Thanks,
Hi! This ClientTest
file, mentioned in the readme, appears to be lost again. I searched the repo for "ClientTest", but didn't come up with anything.
Originally posted by @bradley-turek-at-domo in #9 (comment)
I am now using the SDK in work, but would like to use in private as well.
But I have no Domo account, so I cannot access Domo API.
I tried to sign up free account a few days ago, but response is nothing...
Should I do what to join developement the SDK and get client Id and client secret?
We recently had to create new credentials for a custom application since the past client credentials expired due to the user no longer being active in domo. The new credentials do not have a stream available for the dataset, it appears that there is no current way to create a stream on an existing dataset. This requires us to export and subsequently import the large dataset to begin publishing data to domo.
I want to export the dataset, such as
https://api.domo.com/v1/datasets/317970a1-6a6e-4f70-8e09-44cf5f34cf44/data?includeHeader=true&fileName=data-dump.csv
to a .csv file and using the dataSetId as follows:
String dataSetId = "317970a1-6a6e-4f70-8e09-44cf5f34cf44";
File f = File.createTempFile("sample-export", ".csv");
dsClient.exportDataToFile(dataSetId, true, f);
System.out.println("Wrote out file:"+f.getAbsolutePath());
by referencing the ExportDataExample.java:
But I still cannot export correct .csv file with data I want.
I was afraid that I did not use the API in a right way since the link to Client Test File is broken.
I wonder how I can export the dataset correctly by using Java.
Thank you very much.
The SDK is open source and will be in Maven shortly.
Follow this issue to be notified when that work has been completed.
Hi All,
I've started using the domo java SDK and I put the right client ID and clientSecret.
whan I try to run tests:
I have this as a LOG:
750 [main] INFO com.domo.request.Slf4jLoggingInterceptor - Authorization: Bearer starterTokenTheIsInvalid
and this as an Error:
reponseBody:{"error":"invalid_token","error_description":"Cannot convert access token to JSON"}
Any idea how to fix this please?
Thanks
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.