You are not logged in.

  • Login
Bitte besucht unser neues Forum unter https://forum.nitrado.net | Please visit our new Forum at https://forum.nitrado.net

RealSurvivers

User / Kunde

  • "RealSurvivers" started this thread

Posts: 15

  • Send private message

1

Saturday, December 24th 2016, 9:32pm

Mit Java das Nitrado Guthaben auslesen

Bin gerade dabei ein Plugin zu programmieren und würde gerne einen kleinen Server auf die Beine stellen mit nem Freund zusammen der Youtube-Videos macht und den Server sozusagen "Promoten" könnte.
Haben wir letztes Jahr schon mal gemacht und haben den Server dann durch Spenden ganz gut am Leben halten können, haben es dann aber nach einem halben Jahr aufgehört, weil wir keine Zeit mehr hatten.
Nun wäre es für mich interressant zu wissen ob ich mit Java mein Guthaben auf Nitrado auslesen kann, um es dann in Minecraft darzustellen wie lange es noch dauert bis der nächste Monat bezahlt ist.
Letztlich brauche ich doch dann wahrscheinlich Code der die Seite ausliest, sich jedoch vorher einloggt oder? Oder gibt es andere Schnittstellen über die ich dass einfacher auslesen kann?

Sorse

User / Kunde

  • "Sorse" is male

Posts: 90

Location: Baden-Württemberg

  • Send private message

2

Saturday, December 24th 2016, 11:10pm

https://nitrado.github.io/Nitrapi/resources/user/

Es gibt die Nitrado API (NitrAPI). Ich denke Credit ist das was du auslesen möchtest, jedoch bin ich mir da nicht sicher da ich sie selbst noch nie genutzt habe.

RealSurvivers

User / Kunde

  • "RealSurvivers" started this thread

Posts: 15

  • Send private message

3

Sunday, December 25th 2016, 8:24pm

https://nitrado.github.io/Nitrapi/resources/user/

Es gibt die Nitrado API (NitrAPI). Ich denke Credit ist das was du auslesen möchtest, jedoch bin ich mir da nicht sicher da ich sie selbst noch nie genutzt habe.

Kannst du mir erklären wie ich die einbinden kann?
Bin zwar mit Java ganz fit, aber zu blöd selbst ne API einzubinden z.B. bei Maven (soll ja für viele APIs echt praktisch sein z.b. für die Teamspeak API).
Man muss ja etwas in die pom.xml reinschreiben, hab für die ts api einfach den code kopiert aber kann mir selbst noch nicht herleiten wo ich die Repositories und so hernehmen soll.

Sorse

User / Kunde

  • "Sorse" is male

Posts: 90

Location: Baden-Württemberg

  • Send private message

4

Sunday, December 25th 2016, 8:43pm

Das ganze ist eine WebAPI. Du musst nur HTTP Anfragen (GET, POST, PUT, DELETE) auf die entsprechenden URLs machen.

http://stackoverflow.com/questions/37389…t-api-with-java

BlvckBytes

User / Kunde

  • "BlvckBytes" is male

Posts: 797

Location: (*blvckbytes).home

Occupation: Schüler -> HTL für Informationstechnologie und Netzwerktechnik

  • Send private message

5

Monday, December 26th 2016, 5:08pm

@RealSurvivers

Naja, das mit der API verstehe ich auch nicht ganz, wie man da einen Token bekommen soll, man soll auf "https://oauth.nitrado.net/oauth/v2/token" einen GET machen, aber wie genau das funktioniert, weis ich leider nicht.
Ich habe es zwar versucht, bin jedoch daran gescheitert, das war mein Code:

Spoiler Spoiler

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
private static String getToken( String name ) {
	String token = "Error";
	try {
		StringBuilder result = new StringBuilder();
		URL url = new URL( "https://oauth.nitrado.net/oauth/v2/auth" );
		HttpURLConnection conn = ( HttpURLConnection ) url.openConnection();
		conn.setRequestMethod( "GET" );
		BufferedReader reader = new BufferedReader( new InputStreamReader(
		conn.getInputStream() ) );
		String oneLine;
		while( ( oneLine = reader.readLine() ) != null ) {
			result.append( oneLine );
		}
		reader.close();
		token = result.toString();
	} catch ( Exception ex ) {
		token = ex.toString();
	}
	return token;
}

Die Jar habe ich mit Maven schon compiled, vielleicht hilft sie dir ja, habe sie mal angehängt.

LG BlvckBytes
BlvckBytes has attached the following file:

Sorse

User / Kunde

  • "Sorse" is male

Posts: 90

Location: Baden-Württemberg

  • Send private message

6

Monday, December 26th 2016, 7:49pm

Schaut euch am besten erst einmal an wie oAuth2 funktioniert. Wenn man es das erste mal gesehen hat kann es etwas verwirrend sein. Den Token würde ich mir an euer Stelle mit Postman generieren lassen und dann hardcoden.

//Edit: Ich bau kurz eine kleine Anwendung zusammen welche das kann.

//Edit2: Ich habe gesehen das Google eine oAuth Library für Java anbietet. Benutzt am besten diese ;)

This post has been edited 1 times, last edit by "Sorse" (Dec 26th 2016, 9:16pm)


RealSurvivers

User / Kunde

  • "RealSurvivers" started this thread

Posts: 15

  • Send private message

7

Monday, December 26th 2016, 11:30pm

Schaut euch am besten erst einmal an wie oAuth2 funktioniert. Wenn man es das erste mal gesehen hat kann es etwas verwirrend sein. Den Token würde ich mir an euer Stelle mit Postman generieren lassen und dann hardcoden.


Hab mir jetzt Postman runtergeladen und hab nach einigem rumprobieren auch einen Access Token.
Wenn ich https://oauth.nitrado.net/oauth/v2/auth/user?access_token=[token] in den Browser oder eben bei postman eingebe sollte ich doch die user informationen erhalten oder verstehe ich das falsch?

Bekomme aber nur einen Fehler:
{"status":"error","message":{"exception":"Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException","message":"No route found for \"GET \/oauth\/v2\/auth\/user\""}}


EDIT:
Stelle gerade fest, dass ich ziemlich doof bin:
Ich muss warscheinlich https://api.nitrado.net/user?access_token=[token] eingeben oder?
Jetzt bekommen ich aber:
{"status":"error","message":"access_token_no_scope"}

EDIT2:
Wer lesen kann ist klar im Vorteil...
Habe mir jetzt die Nitrado Dokumentation nochmal durchgelesen und verstehe jetzt auch nicht mehr nur noch Bahnhof.
Habe jetzt die richtige Scope eingestellt und jetzt funktioniert die sache auch.

Danke an alle die mir geholfen haben oder es zu mindest versucht haben! :)

This post has been edited 1 times, last edit by "RealSurvivers" (Dec 26th 2016, 11:43pm)


Sorse

User / Kunde

  • "Sorse" is male

Posts: 90

Location: Baden-Württemberg

  • Send private message

8

Monday, December 26th 2016, 11:52pm

OAuth ist schon eine Sache für sich. Sei froh, dass du es bisher nur als Client kennen gelernt hast. Ich sitze momentan an meiner eigenen API welche OAuth zur Verführung stellen soll, und kann nur sagen dass es keinen Spaß macht :)

Dafür bietet es dem Nutzer eine deutlich höhere Sicherheit und Transparenz.

Bitte besucht unser neues Forum unter https://forum.nitrado.net| Please visit our new Forum at https://forum.nitrado.net

Similar threads