ok24601 / etoro-api Goto Github PK
View Code? Open in Web Editor NEWetoro trading REST API
License: ISC License
etoro trading REST API
License: ISC License
After some time I get this when attempting to open a BUY position. Restarting docker container seems to fix it.
Precise error: https://pastebin.com/Q9HTCEBx
I am also unable to get NAS.OL or RR.L
while calling getAccountData the response is "error 1020". You can avoid this by changing the user-agent to
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36"
In RequestUtils.prepareRequest(..). This worked for me. The error itselfs seems to be thrown by cloudflare.
Greetings
Hey, when trying out the demo buy I'm getting the error A JSONObject text must begin with '{' at 1 [character 2 line 1]
Command is exactly like in the readme
curl -X POST \ http://localhost:8088/etoro-api/positions/open \ -H 'Content-Type: application/json' \ -H 'mode: Demo' \ -d '{ "name": "btc", "type": "BUY", "amount": 100, "leverage": 1, "takeProfitRate": 13000, "stopLossRate": 1000 }'
Any ideas? Running ubuntu 20.04
openjdk 11.0.9.1 2020-11-04
OpenJDK Runtime Environment (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04)
OpenJDK 64-Bit Server VM (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)
Hey, when trying to buy I'm getting
{"timestamp":"2021-01-29T07:40:07.404+0000","status":500,"error":"Internal Server Error","message":"None BUY price available for id 18","path":"/etoro-api/positions/open"}
Also on the watchlist it says marketOpen null, buy null and so on, even though it is possible to trade on the website...
{"id":"18","name":"gold","fullName":"Gold","buy":null,"sell":null,"marketOpen":null,"askDiscounted":0.0,"bidDiscounted":0.0}
Any ideas?
Whenever I try to create a short position it fails
Unfortunately I don't have the error now as the market is closed, however will try and get it on monday. I just want to confirm that the library supports shorts, as it looks as if it does.
Will confirm that buys went through completely fine, it was just an issue with 'sells' (and I don't mean closing an open position, mean a shot position).
Let me know if there is anything else I can provide you with
Hi,
I am new to this piece of software, but I am trying to open a new position on Demo mode. I have followed the tutorial on the README, but I'm getting an error when trying to open any position.
My watchlist is as follows:
[{"id":"28","name":"nsdq100","fullName":"NASDAQ100","buy":null,"sell":null,"marketOpen":null,"askDiscounted":0.0,"bidDiscounted":0.0},{"id":"100000","name":"btc","fullName":"Bitcoin","buy":null,"sell":null,"marketOpen":null,"askDiscounted":0.0,"bidDiscounted":0.0},{"id":"18","name":"gold","fullName":"Gold","buy":null,"sell":null,"marketOpen":null,"askDiscounted":0.0,"bidDiscounted":0.0}]
however, when I try to open a NSDQ100 position via:
curl -X POST \
http://localhost:8088/etoro-api/positions/open \
-H 'Content-Type: application/json' \
-H 'mode: Demo' \
-d '{
"name": "nsdq100",
"type": "BUY",
"amount": 200,
"leverage": 20
}'
I get the following error:
{"timestamp":1653989576442,"status":500,"error":"Internal Server Error","message":"None BUY price available for id 28","path":"/etoro-api/positions/open"}
Would anyone know what I am doing wrong? Thanks.
Hi @ok24601
I appreciate the hard work that you have done!
I have a question, did you follow any official API provided by eToro or you reverse-engineer the behavior of it?
I'd like to learn about any official API provided by eToro if there's any.
Thank you
Hello I have that when i tried to compile the project, could you help me please
Could not resolve all files for configuration ':compileClasspath'.
Could not resolve com.lightstreamer:ls-log-adapter-java:1.0.0.
Required by:
project : > com.lightstreamer:ls-javase-client:3.1.1
> Could not resolve com.lightstreamer:ls-log-adapter-java:1.0.0.
> Could not get resource 'https://www.lightstreamer.com/repo/maven/com/lightstreamer/ls-log-adapter-java/1.0.0/ls-log-adapter-java-1.0.0.pom'.
> Could not GET 'https://mvn.lightstreamer.com/com/lightstreamer/ls-log-adapter-java/1.0.0/ls-log-adapter-java-1.0.0.pom'. Received status code 403 from server: Forbidden
For some reason from one day to the other, all versions fail for me - native PopOS version, AWS Ubuntu Image Version, and docker Image.
Maybe a problem with the newest chrome? It worked before (2 days ago)
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: '571d4777e650', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '5.8.0-7630-generic', java.version: '11.0.10'```
whilst working with the api, i found that the 'PUT' and 'POST' methods from pythons request library are not allowed (see bellow for error code)
{"timestamp":"2021-03-29T08:33:28.687+0000","status":405,"error":"Method Not Allowed","message":"Request method 'POST' not supported","path":"/etoro-api/swagger-ui.html"}
import requests
url = 'http://localhost:8088/etoro-api/swagger-ui.html#/positions-controller/openPositionUsingPOST'
headers = {
'Content-type': 'application/json',
'mode': 'Demo'
}
data = {"name": "silver", "type": "BUY", "amount": 1000, "leverage": 1,"takeProfitAmountRate": 10, "stopLossAmountRate": 50 }
anyone know a wayaround this block?
[INFO - 2020-05-15T23:57:24.425Z] Session [d2ba4750-9707-11ea-8f42-f7036ec18859] - page.settings - {"XSSAuditingEnabled":false,"javascriptCanCloseWindows":true,"javascriptCanOpenWindows":true,"javascriptEnabled":true,"loadImages":true,"localToRemoteUrlAccessEnabled":false,"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.1.1 Safari/538.1","webSecurityEnabled":true}
[INFO - 2020-05-15T23:57:24.425Z] Session [d2ba4750-9707-11ea-8f42-f7036ec18859] - page.customHeaders: - {}
[INFO - 2020-05-15T23:57:24.425Z] Session [d2ba4750-9707-11ea-8f42-f7036ec18859] - Session.negotiatedCapabilities - {"browserName":"phantomjs","version":"2.1.1","driverName":"ghostdriver","driverVersion":"1.2.0","platform":"mac-unknown-64bit","javascriptEnabled":true,"takesScreenshot":true,"handlesAlerts":false,"databaseEnabled":false,"locationContextEnabled":false,"applicationCacheEnabled":false,"browserConnectionEnabled":false,"cssSelectorsEnabled":true,"webStorageEnabled":false,"rotatable":false,"acceptSslCerts":false,"nativeEvents":true,"proxy":{"proxyType":"direct"}}
[INFO - 2020-05-15T23:57:24.425Z] SessionManagerReqHand - _postNewSessionCommand - New Session Created: d2ba4750-9707-11ea-8f42-f7036ec18859
2020-05-16 07:57:24.441 INFO 43398 --- [ null to remote] o.o.selenium.remote.ProtocolHandshake : Detected dialect: OSS
[ERROR - 2020-05-15T23:57:42.125Z] Session [d2ba4750-9707-11ea-8f42-f7036ec18859] - page.onError - msg: TypeError: undefined is not an object (evaluating 'c.config')
phantomjs://platform/console++.js:263 in error
[ERROR - 2020-05-15T23:57:42.125Z] Session [d2ba4750-9707-11ea-8f42-f7036ec18859] - page.onError - stack:
(anonymous function) (https://cdn.etorostatic.com/235.0.1/js_require/?r[]=infrastruct/libs/requirejs/etoro-require&r[]=amd-config&r[]=apps/etoroApp&r[]=apps/components/layout/layout.view.html:2)
(anonymous function) (https://cdn.etorostatic.com/235.0.1/js_require/?r[]=infrastruct/libs/requirejs/etoro-require&r[]=amd-config&r[]=apps/etoroApp&r[]=apps/components/layout/layout.view.html:2)
phantomjs://platform/console++.js:263 in error
After waiting for many minutes, it seems working now. Should I just ignore this error message?
i noticed that there is an error with the newly released google chrome V89 (released march 9) it broke spring for me, even after getting a v89 compatable chrome driver
anyone know if there is a fix here? or just downgrade the chrome browser?
best regards,
Max.
. ____ _ __ _ _ /\ / ' __ _ () __ __ _ \ \ \ \ ( ( )__ | '_ | '| | ' / ` | \ \ \ \ \/ )| |)| | | | | || (| | ) ) ) ) ' || .__|| ||| |_, | / / / / =========||==============|/=//// :: Spring Boot :: (v2.2.4.RELEASE) 2021-03-15 10:33:55.373 INFO 6412 --- [ main] ok.work.etoroapi.EtoroApiApplicationKt : Starting EtoroApiApplicationKt on DESKTOP-VS716JB with PID 6412 (C:\Users\KunsthandelMJvdS\Desktop\project M\project test\etoro-api-master\build\libs\etoro-api-0.1.4.jar started by KunsthandelMJvdS in C:\Users\KunsthandelMJvdS\Desktop\project M\project test\etoro-api-master) 2021-03-15 10:33:55.373 INFO 6412 --- [ main] ok.work.etoroapi.EtoroApiApplicationKt : No active profile set, falling back to default profiles: default 2021-03-15 10:33:57.116 INFO 6412 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8088 (http) 2021-03-15 10:33:57.132 INFO 6412 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2021-03-15 10:33:57.132 INFO 6412 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.30] 2021-03-15 10:33:57.251 INFO 6412 --- [ main] o.a.c.c.C.[.[localhost].[/etoro-api] : Initializing Spring embedded WebApplicationContext 2021-03-15 10:33:57.251 INFO 6412 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1815 ms Starting ChromeDriver 87.0.4280.88 (89e2380a3e36c3464b5dd1302349b1382549290d-refs/branch-heads/4280@{#1761}) on port 2895 Only local connections are allowed. Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe. ChromeDriver was started successfully. 2021-03-15 10:33:59.197 WARN 6412 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'etoroMetadataService': Invocation of init method failed; nested exception is org.openqa.selenium.SessionNotCreatedException: session not created: This version of ChromeDriver only supports Chrome version 87 Current browser version is 89.0.4389.82 with binary path C:\Program Files (x86)\Google\Chrome\Application\chrome.exe Build info: version: 'unknown', revision: 'unknown', time: 'unknown' System info: host: 'DESKTOP-VS716JB', ip: '192.168.2.8', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '11.0.10' Driver info: driver.version: ChromeDriver remote stacktrace: Backtrace: Ordinal0 [0x00A1C0C3+3326147] Ordinal0 [0x00900851+2164817] Ordinal0 [0x00787298+619160] Ordinal0 [0x00701D92+73106] Ordinal0 [0x006FE119+57625] Ordinal0 [0x006FC38A+50058] Ordinal0 [0x00725F3E+220990] Ordinal0 [0x00725CAC+220332] Ordinal0 [0x0072189B+202907] Ordinal0 [0x00703DF4+81396] Ordinal0 [0x00704DEE+85486] Ordinal0 [0x00704D79+85369] Ordinal0 [0x009185DC+2262492] GetHandleVerifier [0x00BA2874+1487204] GetHandleVerifier [0x00BA23CD+1486013] GetHandleVerifier [0x00BAA368+1518680] GetHandleVerifier [0x00BA2F4E+1488958] Ordinal0 [0x0090ED0D+2223373] Ordinal0 [0x0091A12B+2269483] Ordinal0 [0x0091A26F+2269807] Ordinal0 [0x0092ECB8+2354360] BaseThreadInitThunk [0x7738FA29+25] RtlGetAppContainerNamedObjectPath [0x776E76B4+228] RtlGetAppContainerNamedObjectPath [0x776E7684+180] 2021-03-15 10:33:59.212 INFO 6412 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] 2021-03-15 10:33:59.244 INFO 6412 --- [ main] ConditionEvaluationReportLoggingListener : Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2021-03-15 10:33:59.262 ERROR 6412 --- [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'etoroMetadataService': Invocation of init method failed; nested exception is org.openqa.selenium.SessionNotCreatedException: session not created: This version of ChromeDriver only supports Chrome version 87 Current browser version is 89.0.4389.82 with binary path C:\Program Files (x86)\Google\Chrome\Application\chrome.exe Build info: version: 'unknown', revision: 'unknown', time: 'unknown' System info: host: 'DESKTOP-VS716JB', ip: '192.168.2.8', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '11.0.10' Driver info: driver.version: ChromeDriver remote stacktrace: Backtrace: Ordinal0 [0x00A1C0C3+3326147] Ordinal0 [0x00900851+2164817] Ordinal0 [0x00787298+619160] Ordinal0 [0x00701D92+73106] Ordinal0 [0x006FE119+57625] Ordinal0 [0x006FC38A+50058] Ordinal0 [0x00725F3E+220990] Ordinal0 [0x00725CAC+220332] Ordinal0 [0x0072189B+202907] Ordinal0 [0x00703DF4+81396] Ordinal0 [0x00704DEE+85486] Ordinal0 [0x00704D79+85369] Ordinal0 [0x009185DC+2262492] GetHandleVerifier [0x00BA2874+1487204] GetHandleVerifier [0x00BA23CD+1486013] GetHandleVerifier [0x00BAA368+1518680] GetHandleVerifier [0x00BA2F4E+1488958] Ordinal0 [0x0090ED0D+2223373] Ordinal0 [0x0091A12B+2269483] Ordinal0 [0x0091A26F+2269807] Ordinal0 [0x0092ECB8+2354360] BaseThreadInitThunk [0x7738FA29+25] RtlGetAppContainerNamedObjectPath [0x776E76B4+228] RtlGetAppContainerNamedObjectPath [0x776E7684+180] at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:160) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:416) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1788) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:879) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878) ~[spring-context-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) ~[spring-context-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE] at ok.work.etoroapi.EtoroApiApplicationKt.main(EtoroApiApplication.kt:54) ~[classes!/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) ~[etoro-api-0.1.4.jar:na] at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) ~[etoro-api-0.1.4.jar:na] at org.springframework.boot.loader.Launcher.launch(Launcher.java:51) ~[etoro-api-0.1.4.jar:na] at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52) ~[etoro-api-0.1.4.jar:na] Caused by: org.openqa.selenium.SessionNotCreatedException: session not created: This version of ChromeDriver only supports Chrome version 87 Current browser version is 89.0.4389.82 with binary path C:\Program Files (x86)\Google\Chrome\Application\chrome.exe Build info: version: 'unknown', revision: 'unknown', time: 'unknown' System info: host: 'DESKTOP-VS716JB', ip: '192.168.2.8', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '11.0.10' Driver info: driver.version: ChromeDriver remote stacktrace: Backtrace: Ordinal0 [0x00A1C0C3+3326147] Ordinal0 [0x00900851+2164817] Ordinal0 [0x00787298+619160] Ordinal0 [0x00701D92+73106] Ordinal0 [0x006FE119+57625] Ordinal0 [0x006FC38A+50058] Ordinal0 [0x00725F3E+220990] Ordinal0 [0x00725CAC+220332] Ordinal0 [0x0072189B+202907] Ordinal0 [0x00703DF4+81396] Ordinal0 [0x00704DEE+85486] Ordinal0 [0x00704D79+85369] Ordinal0 [0x009185DC+2262492] GetHandleVerifier [0x00BA2874+1487204] GetHandleVerifier [0x00BA23CD+1486013] GetHandleVerifier [0x00BAA368+1518680] GetHandleVerifier [0x00BA2F4E+1488958] Ordinal0 [0x0090ED0D+2223373] Ordinal0 [0x0091A12B+2269483] Ordinal0 [0x0091A26F+2269807] Ordinal0 [0x0092ECB8+2354360] BaseThreadInitThunk [0x7738FA29+25] RtlGetAppContainerNamedObjectPath [0x776E76B4+228] RtlGetAppContainerNamedObjectPath [0x776E7684+180] at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:na] at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) ~[na:na] at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$errorHandler$0(W3CHandshakeResponse.java:62) ~[selenium-remote-driver-3.141.59.jar!/:na] at org.openqa.selenium.remote.HandshakeResponse.lambda$getResponseFunction$0(HandshakeResponse.java:30) ~[selenium-remote-driver-3.141.59.jar!/:na] at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:126) ~[selenium-remote-driver-3.141.59.jar!/:na] at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[na:na] at java.base/java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958) ~[na:na] at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:127) ~[na:na] at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:502) ~[na:na] at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:488) ~[na:na] at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[na:na] at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150) ~[na:na] at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na] at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:543) ~[na:na] at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:128) ~[selenium-remote-driver-3.141.59.jar!/:na] at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:74) ~[selenium-remote-driver-3.141.59.jar!/:na] at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136) ~[selenium-remote-driver-3.141.59.jar!/:na] at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83) ~[selenium-remote-driver-3.141.59.jar!/:na] at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552) ~[selenium-remote-driver-3.141.59.jar!/:na] at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213) ~[selenium-remote-driver-3.141.59.jar!/:na] at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:131) ~[selenium-remote-driver-3.141.59.jar!/:na] at org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:181) ~[selenium-chrome-driver-3.141.59.jar!/:na] at org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:168) ~[selenium-chrome-driver-3.141.59.jar!/:na] at org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:157) ~[selenium-chrome-driver-3.141.59.jar!/:na] at ok.work.etoroapi.client.browser.EtoroMetadataService.login(EtoroBrowserContext.kt:46) ~[classes!/:na] at ok.work.etoroapi.client.browser.EtoroMetadataService.init(EtoroBrowserContext.kt:42) ~[classes!/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:333) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:157) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] ... 26 common frames omitted
Would it be possible with this project to make it so that we can retrieve another user's statistics, such as his open portfolio, history, etc?
like the problem posted in another thread, but the message is different.
I started the server with: java -jar build/libs/etoro-api-0.1.2.jar
This message was displayed before server shutdown:
[INFO - 2020-05-26T03:21:54.079Z] ShutdownReqHand - _handle - About to shutdown {"missingScopes":null,"gcid":0,"realCid":0,"demoCid":0,"accessToken":null,"antiCsrfToken":null,"expirationUnixTimeMs":0,"statusCode":"BadRequest","sessionIdentifier":0,"applicationIdentifier":null,"applicationId":0,"status":400,"error":{"failureReason":"PolicyViolation_TwoFactorRequired","errorMessage":"Two Factor Verification Required","verificationId":"1de991db-454d-4b68-bf09-99dac1c4c225","maskedPhone":"**********08","maskedEmail":null,"userSocialNetworkId":null,"socialAccessToken":null,"socialNetwork":null}}
EDIT:
it's because of my TwoFactorRequired,
Hi, I couldn't get the example from the README to work.
curl -X PUT \ http://localhost:8088/etoro-api/watchlist/byId \ -H 'Content-Type: application/json' \ -H 'cache-control: no-cache' \ -d '{ "param": "btc" }'
Server returns:
{"timestamp":"2020-04-27T12:26:17.998+0000","status":500,"error":"Internal Server Error","message":"Asset with InstrumentID btc was not found.","path":"/etoro-api/watchlist/byId"}
What is going/ am I doing wrong?
C:\Users\User\Downloads\etoro-api-master>gradlew build
Starting a Gradle Daemon (subsequent builds will be faster)
Task :compileKotlin FAILED
FAILURE: Build failed with an exception.
Could not resolve all files for configuration ':compileClasspath'.
Could not resolve com.lightstreamer:ls-log-adapter-java:1.0.0.
Required by:
project : > com.lightstreamer:ls-javase-client:3.1.1
> Could not resolve com.lightstreamer:ls-log-adapter-java:1.0.0.
> Could not get resource 'https://www.lightstreamer.com/repo/maven/com/lightstreamer/ls-log-adapter-java/1.0.0/ls-log-adapter-java-1.0.0.pom'.
> Could not GET 'https://mvn.lightstreamer.com/com/lightstreamer/ls-log-adapter-java/1.0.0/ls-log-adapter-java-1.0.0.pom'. Received status code 403 from server: Forbidden
Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
Get more help at https://help.gradle.org
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.3/userguide/command_line_interface.html#sec:command_line_warnings
BUILD FAILED in 6s
1 actionable task: 1 executed
Hey,
I managed to get it running in docker now, and created a dockerhub image:
https://hub.docker.com/r/guestros/etoroapi
If you want feel free to change it.
My repo just wraps your source code to docker https://github.com/JustinGuese/docker-etoro-api
I copy a bunch of people on eToro, and I'm trying to create a summary containing all my currently copied positions.
By inspecting the requests, I've figured out that all the data I need is included in the response from the logindata
endpoint. Would it be possible to add an endpoint to expose this data?
In case anyone is interested, this is where the data about "Mirrors" can be found in the response from logindata:
List of Mirrors containing names and avatars: AggregatedResult.ApiResponses.MirrorsUserData.Content.users[]
Lists of copied positions: AggregatedResult.ApiResponses.PrivatePortfolio.Content.ClientPortfolio.Mirrors[].Positions
I was wondering if there was a way to send the data of current open positions to python so i can run my own market analysis.
Hey, is it possible to somehow define Real vs Virtual Account?
Thx in advance ;)
Hi ! First of all congratulations, this is a fine piece of work!
I was wondering if when we open a position we can get the price at which it was opened in the response object. This is very useful because you almost never can open a position at the price you were "watching" it when you made the decision to buy.
Thanks in advance!
Hi,
I'm getting this error while starting on Ubuntu 20.04 and openjdk version "11.0.11" 2021-04-20.
Any hint?
. ____ _ __ _ _
/\ / ' __ _ () __ __ _ \ \ \
( ( )__ | '_ | '| | ' / ` | \ \ \
\/ )| |)| | | | | || (| | ) ) ) )
' || .__|| ||| |_, | / / / /
=========||==============|/=////
:: Spring Boot :: (v2.2.4.RELEASE)
2021-05-05 09:07:44.843 INFO 2406001 --- [ main] ok.work.etoroapi.EtoroApiApplicationKt : Starting EtoroApiApplicationKt on itmil-ves with PID 2406001 (/home/expovin/etoro-api/build/libs/etoro-api-0.1.4.jar started by expovin in /home/expovin/etoro-api)
2021-05-05 09:07:44.847 INFO 2406001 --- [ main] ok.work.etoroapi.EtoroApiApplicationKt : No active profile set, falling back to default profiles: default
2021-05-05 09:07:46.317 INFO 2406001 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8088 (http)
2021-05-05 09:07:46.333 INFO 2406001 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2021-05-05 09:07:46.334 INFO 2406001 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.30]
2021-05-05 09:07:46.408 INFO 2406001 --- [ main] o.a.c.c.C.[.[localhost].[/etoro-api] : Initializing Spring embedded WebApplicationContext
2021-05-05 09:07:46.408 INFO 2406001 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1497 ms
Starting ChromeDriver 87.0.4280.88 (89e2380a3e36c3464b5dd1302349b1382549290d-refs/branch-heads/4280@{#1761}) on port 32480
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
2021-05-05 09:07:47.313 WARN 2406001 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'watchlist': Unsatisfied dependency expressed through field 'etoroClient'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'etoroHttpClient': Unsatisfied dependency expressed through field 'userContext'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userContext': Unsatisfied dependency expressed through field 'metadataService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'etoroMetadataService': Invocation of init method failed; nested exception is org.openqa.selenium.SessionNotCreatedException: session not created: This version of ChromeDriver only supports Chrome version 87
Current browser version is 89.0.4389.114 with binary path /usr/bin/google-chrome
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'itmil-ves', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '5.8.0-50-generic', java.version: '11.0.11'
Driver info: driver.version: ChromeDriver
remote stacktrace: #0 0x55f20e67ee79
2021-05-05 09:07:47.317 INFO 2406001 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]
2021-05-05 09:07:47.333 INFO 2406001 --- [ main] ConditionEvaluationReportLoggingListener :
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2021-05-05 09:07:47.340 ERROR 2406001 --- [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'watchlist': Unsatisfied dependency expressed through field 'etoroClient'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'etoroHttpClient': Unsatisfied dependency expressed through field 'userContext'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userContext': Unsatisfied dependency expressed through field 'metadataService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'etoroMetadataService': Invocation of init method failed; nested exception is org.openqa.selenium.SessionNotCreatedException: session not created: This version of ChromeDriver only supports Chrome version 87
Current browser version is 89.0.4389.114 with binary path /usr/bin/google-chrome
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'itmil-ves', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '5.8.0-50-generic', java.version: '11.0.11'
Driver info: driver.version: ChromeDriver
remote stacktrace: #0 0x55f20e67ee79
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:643) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:116) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1422) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:879) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878) ~[spring-context-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) ~[spring-context-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE]
at ok.work.etoroapi.EtoroApiApplicationKt.main(EtoroApiApplication.kt:54) ~[classes!/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) ~[etoro-api-0.1.4.jar:na]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) ~[etoro-api-0.1.4.jar:na]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:51) ~[etoro-api-0.1.4.jar:na]
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52) ~[etoro-api-0.1.4.jar:na]
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'etoroHttpClient': Unsatisfied dependency expressed through field 'userContext'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userContext': Unsatisfied dependency expressed through field 'metadataService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'etoroMetadataService': Invocation of init method failed; nested exception is org.openqa.selenium.SessionNotCreatedException: session not created: This version of ChromeDriver only supports Chrome version 87
Current browser version is 89.0.4389.114 with binary path /usr/bin/google-chrome
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'itmil-ves', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '5.8.0-50-generic', java.version: '11.0.11'
Driver info: driver.version: ChromeDriver
remote stacktrace: #0 0x55f20e67ee79
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:643) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:116) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1422) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1287) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1207) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
... 27 common frames omitted
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userContext': Unsatisfied dependency expressed through field 'metadataService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'etoroMetadataService': Invocation of init method failed; nested exception is org.openqa.selenium.SessionNotCreatedException: session not created: This version of ChromeDriver only supports Chrome version 87
Current browser version is 89.0.4389.114 with binary path /usr/bin/google-chrome
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'itmil-ves', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '5.8.0-50-generic', java.version: '11.0.11'
Driver info: driver.version: ChromeDriver
remote stacktrace: #0 0x55f20e67ee79
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:643) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:116) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1422) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1287) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1207) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
... 40 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'etoroMetadataService': Invocation of init method failed; nested exception is org.openqa.selenium.SessionNotCreatedException: session not created: This version of ChromeDriver only supports Chrome version 87
Current browser version is 89.0.4389.114 with binary path /usr/bin/google-chrome
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'itmil-ves', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '5.8.0-50-generic', java.version: '11.0.11'
Driver info: driver.version: ChromeDriver
remote stacktrace: #0 0x55f20e67ee79
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:160) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:416) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1788) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1287) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1207) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
... 53 common frames omitted
Caused by: org.openqa.selenium.SessionNotCreatedException: session not created: This version of ChromeDriver only supports Chrome version 87
Current browser version is 89.0.4389.114 with binary path /usr/bin/google-chrome
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'itmil-ves', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '5.8.0-50-generic', java.version: '11.0.11'
Driver info: driver.version: ChromeDriver
remote stacktrace: #0 0x55f20e67ee79
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:na]
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) ~[na:na]
at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$errorHandler$0(W3CHandshakeResponse.java:62) ~[selenium-remote-driver-3.141.59.jar!/:na]
at org.openqa.selenium.remote.HandshakeResponse.lambda$getResponseFunction$0(HandshakeResponse.java:30) ~[selenium-remote-driver-3.141.59.jar!/:na]
at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:126) ~[selenium-remote-driver-3.141.59.jar!/:na]
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[na:na]
at java.base/java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958) ~[na:na]
at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:127) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:502) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:488) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[na:na]
at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na]
at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:543) ~[na:na]
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:128) ~[selenium-remote-driver-3.141.59.jar!/:na]
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:74) ~[selenium-remote-driver-3.141.59.jar!/:na]
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136) ~[selenium-remote-driver-3.141.59.jar!/:na]
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83) ~[selenium-remote-driver-3.141.59.jar!/:na]
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552) ~[selenium-remote-driver-3.141.59.jar!/:na]
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213) ~[selenium-remote-driver-3.141.59.jar!/:na]
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131) ~[selenium-remote-driver-3.141.59.jar!/:na]
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:181) ~[selenium-chrome-driver-3.141.59.jar!/:na]
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:168) ~[selenium-chrome-driver-3.141.59.jar!/:na]
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:157) ~[selenium-chrome-driver-3.141.59.jar!/:na]
at ok.work.etoroapi.client.browser.EtoroMetadataService.login(EtoroBrowserContext.kt:46) ~[classes!/:na]
at ok.work.etoroapi.client.browser.EtoroMetadataService.init(EtoroBrowserContext.kt:42) ~[classes!/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:333) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:157) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
... 65 common frames omitted
im trying que docker quickstart and i got:
Session [e8b08ac0-3af3-11eb-a6c6-2f2b21a06513] - page.onError - stack:
(anonymous function) (https://www.gstatic.com/recaptcha/releases/qc5B-qjP0QEimFYUxcpWJy5B/recaptcha__en.js:412)
after that the app crash with: "authorizationContext': Invocation of init method failed; nested exception is org.json.JSONException: JSONObject["accessToken"] not a string."
Hi, is possible to add traders on watchlist?
I think this bot https://etorodiscordbot.herokuapp.com is using lightstreamer to read the trades from traders.
It would be nice to implement it here too.
on telegram I get almost all infos about the trade and the link:
DDS: Dillards Inc
Price: 85.99
Direction: Long
Type: Open Trade
Leverage: 1
https://www.etoro.com/posts/0__entry__2ae50e3c-8a72-47d5-9b48-c80a9e6f3ca9
Hi very nice project!
Im trying to open position and im getting: Code: 612, details: null
using this:
curl -X POST \
http://localhost:8088/etoro-api/positions/open \
-H 'Content-Type: application/json' \
-H 'mode: Demo' \
-d '{
"name": "btc",
"type": "BUY",
"amount": 100,
"leverage": 2,
"takeProfitRate": 13000,
"stopLossRate": 1000
}'
Any thoughts?
Firstly, a very nice project!
In my area, the request (by the browser directly) etoro.com
will be directed to etorocn.com.cn
. So far, it seems that the backend database is the same. Is it possible to add an option to reset the endpoint? In your code, I tried to replace some of the URLs, but not pretty sure if this is work or not (seems work!). Also, I do not know what is ...push-demo-lightstreamer.cloud.etoro...
.
Anyway, if you can leave me an "official" place to replace it, that would be good.
Right now, if I want to implement a client for your API, I have to implement a client for your REST API, i.e., model classes, mappings to JSON and the client class that performs the HTTP requests. While not hard, this is a very tedious task. I need to duplicate most of the code that is already in your project, e.g., EtoroHttpClient
and EtoroPosition
. I could probably reuse some of your code by depending on the Jar, but that would be very cumbersome, because your code relies on Spring's dependency injection. So I would need to use reflection to construct a EtoroHttpClient
instance, e.g.
It would be very handy if you extracted your client into a separate project that could be used as a library and with code akin to:
val client = EtoroHttpClient()
client.login("username", "password")
val positions: List<EtoroPosition> = client.getPositions(TradingMode.REAL)
Your REST API project would then simply depend on that new client library, just as my code.
This client library (or at least parts of it) could even be a Kotlin multiplatform project, i.e. usable not only from JVM languages like Kotlin and Java, but also from JavaScript and other languages.
I would guess that extracting a JVM-only client would not be a lot of work for you. A multiplatform client might be a bit more challenging, but since I have some limited experience with that, I could offer my help.
when trying the 1.4 update i found that the api has no mapping
JPY, 100256=DASHGBP, 100257=USDXUSD, 100263=GOLDBTC, 100269=BTCGRAM, 100270=GRAM, 100271=ETHGRAM, 100272=GRAMEUR}
2021-03-15 11:52:57.496 INFO 3812 --- [ main] o.s.s.c.ThreadPoolTaskScheduler : Initializing ExecutorService 'messageBrokerTaskScheduler'
2021-03-15 11:52:57.553 INFO 3812 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'brokerChannelExecutor'
2021-03-15 11:52:57.612 INFO 3812 --- [ main] pertySourcedRequestMappingHandlerMapping : Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
2021-03-15 11:52:57.694 INFO 3812 --- [ main] d.s.w.p.DocumentationPluginsBootstrapper : Context refreshed
2021-03-15 11:52:57.704 INFO 3812 --- [ main] d.s.w.p.DocumentationPluginsBootstrapper : Found 1 custom documentation plugin(s)
2021-03-15 11:52:57.760 INFO 3812 --- [ main] s.d.s.w.s.ApiListingReferenceScanner : Scanning for api listing references
2021-03-15 11:52:58.440 INFO 3812 --- [ main] o.s.m.s.b.SimpleBrokerMessageHandler : Starting...
2021-03-15 11:52:58.441 INFO 3812 --- [ main] o.s.m.s.b.SimpleBrokerMessageHandler : BrokerAvailabilityEvent[available=true, SimpleBrokerMessageHandler [DefaultSubscriptionRegistry[cache[0 destination(s)], registry[0 sessions]]]]
2021-03-15 11:52:58.443 INFO 3812 --- [ main] o.s.m.s.b.SimpleBrokerMessageHandler : Started.
2021-03-15 11:52:58.483 INFO 3812 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8088 (http) with context path '/etoro-api'
2021-03-15 11:52:58.488 INFO 3812 --- [ main] ok.work.etoroapi.EtoroApiApplicationKt : Started EtoroApiApplicationKt in 17.334 seconds (JVM running for 17.966)
2021-03-15 11:53:17.326 INFO 3812 --- [nio-8088-exec-1] o.a.c.c.C.[.[localhost].[/etoro-api] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2021-03-15 11:53:17.327 INFO 3812 --- [nio-8088-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2021-03-15 11:53:17.345 INFO 3812 --- [nio-8088-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 11 ms
2021-03-15 11:53:17.374 WARN 3812 --- [nio-8088-exec-1] o.s.web.servlet.PageNotFound : No mapping for GET /etoro-api/swagger-ui.html
2021-03-15 11:53:57.553 INFO 3812 --- [MessageBroker-1] o.s.w.s.c.WebSocketMessageBrokerStats : WebSocketSession[0 current WS(0)-HttpStream(0)-HttpPoll(0), 0 total, 0 closed abnormally (0 connect failure, 0 send limit, 0 transport error)], stompSubProtocol[processed CONNECT(0)-CONNECTED(0)-DISCONNECT(0)], stompBrokerRelay[null], inboundChannel[pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0], outboundChannel[pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0], sockJsScheduler[pool size = 1, active threads = 1, queued tasks = 0, completed tasks = 0]
First of all good job on the script!
I have been playing around with it for few days and I cant seem to open SELL position on some ETF's.
For example if I do it with bitcoin it works fine.
I tried
curl -X POST \
http://localhost:8088/etoro-api/positions/open \
-H 'Content-Type: application/json' \
-H 'mode: Demo' \
-d '{
"name": "qqq",
"type": "SELL",
"amount": 2000,
"leverage": 1
}'
and got the error
{"timestamp":"2020-07-20T17:15:03.605+0000","status":500,"error":"Internal Server Error","message":"Code: 796, details: null","path":"/etoro-api/positions/open"
If i use the same command but try BUY instead it works.
The only thing that comes to mind is that when "buying" QQQ is considered as ETF while when "selling" it is CFD.
Any idea ?
Hi i am trying to open SELL position for some assets its working fine, for example bitcoin. But some are throwing None SELL price available for id. For example CAN id: 6317 i can open sell position in etoro but with this API i`m getting None SELL price available for id 6317.
Im trying all variations with takeProfitRate and stopLossRate and without them, tls on of ...
Hey, any ideas?
Windows 10, JDK 11
g.springframework.beans.factory.BeanCreationException: Error creating bean with name 'authorizationContext': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: restricted header name: "origin" at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:160) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:416) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1788) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:879) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878) ~[spring-context-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) ~[spring-context-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE] at ok.work.etoroapi.EtoroApiApplicationKt.main(EtoroApiApplication.kt:52) ~[classes!/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) ~[etoro-api-0.1.2.jar:na] at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) ~[etoro-api-0.1.2.jar:na] at org.springframework.boot.loader.Launcher.launch(Launcher.java:51) ~[etoro-api-0.1.2.jar:na] at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52) ~[etoro-api-0.1.2.jar:na] Caused by: java.lang.IllegalArgumentException: restricted header name: "origin" at java.net.http/jdk.internal.net.http.common.Utils.newIAE(Utils.java:246) ~[java.net.http:na] at java.net.http/jdk.internal.net.http.HttpRequestBuilderImpl.checkNameAndValue(HttpRequestBuilderImpl.java:110) ~[java.net.http:na] at java.net.http/jdk.internal.net.http.HttpRequestBuilderImpl.header(HttpRequestBuilderImpl.java:126) ~[java.net.http:na] at java.net.http/jdk.internal.net.http.HttpRequestBuilderImpl.header(HttpRequestBuilderImpl.java:43) ~[java.net.http:na] at ok.work.etoroapi.client.AuthorizationContext.auth(AuthorizationContext.kt:56) ~[classes!/:na] at ok.work.etoroapi.client.AuthorizationContext.setupAuthorizationContext(AuthorizationContext.kt:40) ~[classes!/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:333) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:157) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE] ... 26 common frames omitted
I found out it's pretty easy to generate a csv file from my eToro positions and import it in Yahoo Finance.
The csv structure is pretty simple:
Column name | Data from | Note |
---|---|---|
Symbol | EtoroAsset.SymbolFull |
To upper case |
Trade Date | EtoroPosition.OpenDateTime |
YYYYMMDD format |
Purchase Price | EtoroPosition.OpenRate |
|
Quantity | EtoroPosition.Amount / EtoroPosition.OpenRate |
Amount of shares |
Comment | Optional |
I would send a PR, but I don't know the best way to add Symbol to EtoroPosition.
The response should probably have these headers:
Content-Type: text/csv
Content-Disposition: attachment;filename=portfolio.csv
Firslty, amazing work.
So, onward with questions:
Hello,
Really nice work. Thank you for your time and implication.
Currently I think it is an issue with opening new positions.
{
"name": "aapl",
"type": "BUY",
"amount": 500,
"leverage": 2
}
leverage on aapl works on web ui but on api level this error is prompted:
{
"timestamp": "2020-09-29T17:21:50.753+0000",
"status": 500,
"error": "Internal Server Error",
"message": "Code: 796, details: null",
"path": "/etoro-api/positions/open"
}
It works only with leverage 1.
Did you take into consideration to update it in order to create limit orders?
Thank you!
I'm getting 403 for login with some cloudflare error saying "Please enable cookies". Have you encountered something like this?
when trying to start the API today i was greeted by this line..
I tried updating the project files from 1.1.3 to 1.1.4, but allas this did not fix my problem.
might anyone know how to fix this?
full output in attatched file, but this is the 'caused by' list
Caused by: org.json.JSONException: A JSONObject text must begin with '{' at 1 [character 2 line 1]
at org.json.JSONTokener.syntaxError(JSONTokener.java:505) ~[json-20180813.jar!/:na]
at org.json.JSONObject.(JSONObject.java:215) ~[json-20180813.jar!/:na]
at org.json.JSONObject.(JSONObject.java:399) ~[json-20180813.jar!/:na]
at ok.work.etoroapi.client.UserContext.getAccountData(UserContext.kt:45) ~[classes!/:na]
at ok.work.etoroapi.client.UserContext.setupAuthorizationContext(UserContext.kt:36) ~[classes!/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:333) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:157) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
... 39 common frames omitted
The automatic action to build and push the docker image to the docker repository is failing.
When trying to play with the api, it suddenly didnt want to start. anyone anny clue on how to fix this ?
the specific error is "Error creating bean with name 'etoroMetadataService': Invocation of init method failed; nested exception is org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":".w-login-btn-wrapp button"}
(Session info: chrome=88.0.4324.182)"
but here is the full output
-jar build/libs/etoro-api-0.1.3.jar
. ____ _ __ _ _
/\ / ' __ _ () __ __ _ \ \ \
( ( )__ | '_ | '| | ' / ` | \ \ \
\/ )| |)| | | | | || (| | ) ) ) )
' || .__|| ||| |_, | / / / /
=========||==============|/=////
:: Spring Boot :: (v2.2.4.RELEASE)
2021-02-22 13:25:58.504 INFO 5696 --- [ main] ok.work.etoroapi.EtoroApiApplicationKt : Starting EtoroApiApplicationKt on DESKTOP-VS716JB with PID 5696 (C:\Users\KunsthandelMJvdS\Desktop\project M\project test\etoro-api-master\build\libs\etoro-api-0.1.3.jar started by KunsthandelMJvdS in C:\Users\KunsthandelMJvdS\Desktop\project M\project test\etoro-api-master)
2021-02-22 13:25:58.520 INFO 5696 --- [ main] ok.work.etoroapi.EtoroApiApplicationKt : No active profile set, falling back to default profiles: default
2021-02-22 13:26:00.270 INFO 5696 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8088 (http)
2021-02-22 13:26:00.286 INFO 5696 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2021-02-22 13:26:00.287 INFO 5696 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.30]
2021-02-22 13:26:00.393 INFO 5696 --- [ main] o.a.c.c.C.[.[localhost].[/etoro-api] : Initializing Spring embedded WebApplicationContext
2021-02-22 13:26:00.393 INFO 5696 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1795 ms
Starting ChromeDriver 87.0.4280.88 (89e2380a3e36c3464b5dd1302349b1382549290d-refs/branch-heads/4280@{#1761}) on port 40168
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
[1613996762.219][WARNING]: This version of ChromeDriver has not been tested with Chrome version 88.
2021-02-22 13:26:04.291 INFO 5696 --- [ null to remote] o.o.selenium.remote.ProtocolHandshake : Detected dialect: W3C
2021-02-22 13:26:08.394 WARN 5696 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'etoroMetadataService': Invocation of init method failed; nested exception is org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":".w-login-btn-wrapp button"}
(Session info: chrome=88.0.4324.182)
For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/no_such_element.html
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'DESKTOP-VS716JB', ip: '192.168.2.8', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '11.0.10'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 88.0.4324.182, chrome: {chromedriverVersion: 87.0.4280.88 (89e2380a3e36c..., userDataDir: C:\Users\KUNSTH~2\AppData\L...}, goog:chromeOptions: {debuggerAddress: localhost:52805}, javascriptEnabled: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: WINDOWS, platformName: WINDOWS, proxy: Proxy(), setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:virtualAuthenticators: true}
Session ID: c0785196770a5691c666a2adc20d3938
*** Element info: {Using=css selector, value=.w-login-btn-wrapp button}
2021-02-22 13:26:08.399 INFO 5696 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]
2021-02-22 13:26:08.415 INFO 5696 --- [ main] ConditionEvaluationReportLoggingListener :
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2021-02-22 13:26:08.423 ERROR 5696 --- [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'etoroMetadataService': Invocation of init method failed; nested exception is org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":".w-login-btn-wrapp button"}
(Session info: chrome=88.0.4324.182)
For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/no_such_element.html
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'DESKTOP-VS716JB', ip: '192.168.2.8', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '11.0.10'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 88.0.4324.182, chrome: {chromedriverVersion: 87.0.4280.88 (89e2380a3e36c..., userDataDir: C:\Users\KUNSTH~2\AppData\L...}, goog:chromeOptions: {debuggerAddress: localhost:52805}, javascriptEnabled: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: WINDOWS, platformName: WINDOWS, proxy: Proxy(), setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:virtualAuthenticators: true}
Session ID: c0785196770a5691c666a2adc20d3938
*** Element info: {Using=css selector, value=.w-login-btn-wrapp button}
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:160) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:416) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1788) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:879) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878) ~[spring-context-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) ~[spring-context-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE]
at ok.work.etoroapi.EtoroApiApplicationKt.main(EtoroApiApplication.kt:52) ~[classes!/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) ~[etoro-api-0.1.3.jar:na]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) ~[etoro-api-0.1.3.jar:na]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:51) ~[etoro-api-0.1.3.jar:na]
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52) [etoro-api-0.1.3.jar:na]2\AppData\L...}, goog:chromeOptions: {debuggerAddress: localhost:52805}, javascriptEnabled: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: WINDOWS, platformName: WINDOWS, proxy: Proxy(), setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:virtualAuthenticators: true}
Caused by: org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":".w-login-btn-wrapp button"}
(Session info: chrome=88.0.4324.182)
For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/no_such_element.html
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'DESKTOP-VS716JB', ip: '192.168.2.8', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '11.0.10'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 88.0.4324.182, chrome: {chromedriverVersion: 87.0.4280.88 (89e2380a3e36c..., userDataDir: C:\Users\KUNSTH
Session ID: c0785196770a5691c666a2adc20d3938
*** Element info: {Using=css selector, value=.w-login-btn-wrapp button}
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:na]
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) ~[na:na]
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:187) ~[selenium-remote-driver-3.141.59.jar!/:na]
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:122) ~[selenium-remote-driver-3.141.59.jar!/:na]
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49) ~[selenium-remote-driver-3.141.59.jar!/:na]
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158) ~[selenium-remote-driver-3.141.59.jar!/:na]
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83) ~[selenium-remote-driver-3.141.59.jar!/:na]
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552) ~[selenium-remote-driver-3.141.59.jar!/:na]
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:323) ~[selenium-remote-driver-3.141.59.jar!/:na]
at org.openqa.selenium.remote.RemoteWebDriver.findElementByCssSelector(RemoteWebDriver.java:420) ~[selenium-remote-driver-3.141.59.jar!/:na]
at ok.work.etoroapi.client.browser.EtoroMetadataService.login(EtoroBrowserContext.kt:51) ~[classes!/:na]
at ok.work.etoroapi.client.browser.EtoroMetadataService.init(EtoroBrowserContext.kt:41) ~[classes!/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:333) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:157) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
... 26 common frames omitted
. ____ _ __ _ _
/\ / ' __ _ () __ __ _ \ \ \
( ( )__ | '_ | '| | ' / ` | \ \ \
\/ )| |)| | | | | || (| | ) ) ) )
' || .__|| ||| |_, | / / / /
=========||==============|/=////
:: Spring Boot :: (v2.2.4.RELEASE)
2021-08-22 19:29:04.191 INFO 18672 --- [ main] ok.work.etoroapi.EtoroApiApplicationKt : Starting EtoroApiApplicationKt on DESKTOP-MD2CT0Q with PID 18672 (D:\MyWork\StocksTrading\Sandboxes\eToro\etoro-api\build\libs\etoro-api-0.1.4.jar started by essam in D:\MyWork\StocksTrading\Sandboxes\eToro\etoro-api)
2021-08-22 19:29:04.196 INFO 18672 --- [ main] ok.work.etoroapi.EtoroApiApplicationKt : No active profile set, falling back to default profiles: default
2021-08-22 19:29:05.721 INFO 18672 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8088 (http)
2021-08-22 19:29:05.734 INFO 18672 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2021-08-22 19:29:05.734 INFO 18672 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.30]
2021-08-22 19:29:05.806 INFO 18672 --- [ main] o.a.c.c.C.[.[localhost].[/etoro-api] : Initializing Spring embedded WebApplicationContext
2021-08-22 19:29:05.807 INFO 18672 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1547 ms
Starting ChromeDriver 92.0.4515.107 (87a818b10553a07434ea9e2b6dccf3cbe7895134-refs/branch-heads/4515@{#1634}) on port 7414
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
2021-08-22 19:29:07.614 INFO 18672 --- [ null to remote] o.o.selenium.remote.ProtocolHandshake : Detected dialect: W3C
2021-08-22 19:29:25.830 WARN 18672 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'browserHttpClient': Unsatisfied dependency expressed through field 'metadataService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'etoroMetadataService': Invocation of init method failed; nested exception is java.lang.RuntimeException: Failed to retrieve token
2021-08-22 19:29:25.833 INFO 18672 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]
2021-08-22 19:29:25.856 INFO 18672 --- [ main] ConditionEvaluationReportLoggingListener :
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2021-08-22 19:29:25.862 ERROR 18672 --- [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'browserHttpClient': Unsatisfied dependency expressed through field 'metadataService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'etoroMetadataService': Invocation of init method failed; nested exception is java.lang.RuntimeException: Failed to retrieve token
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:643) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:116) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1422) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:879) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878) ~[spring-context-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) ~[spring-context-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) ~[spring-boot-2.2.4.RELEASE.jar!/:2.2.4.RELEASE]
at ok.work.etoroapi.EtoroApiApplicationKt.main(EtoroApiApplication.kt:54) ~[classes!/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:564) ~[na:na]
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) ~[etoro-api-0.1.4.jar:na]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) ~[etoro-api-0.1.4.jar:na]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:51) ~[etoro-api-0.1.4.jar:na]
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52) ~[etoro-api-0.1.4.jar:na]
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'etoroMetadataService': Invocation of init method failed; nested exception is java.lang.RuntimeException: Failed to retrieve token
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:160) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:416) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1788) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1287) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1207) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
... 27 common frames omitted
Caused by: java.lang.RuntimeException: Failed to retrieve token
at ok.work.etoroapi.client.browser.EtoroMetadataService.login(EtoroBrowserContext.kt:75) ~[classes!/:na]
at ok.work.etoroapi.client.browser.EtoroMetadataService.init(EtoroBrowserContext.kt:45) ~[classes!/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:564) ~[na:na]
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:333) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:157) ~[spring-beans-5.2.3.RELEASE.jar!/:5.2.3.RELEASE]
... 39 common frames omitted
Hi, it's possible to view portfolio data such as available amount, assets value etc..., simply the data in the bottom bar in the portfolio section of etoro dashboard.
Thanks
Encountered some problems at start api server
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2021-06-11 21:04:14.681 ERROR 4203 --- [ main] o.s.boot.SpringApplication : Application run failed
Anyone have an idea to solve this?
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.