So erstellen Sie eine oAuth-Anfrage mit java?
Ich brauche, um eine Verbindung mit Viagogo-website Verwendung von oAuth. Bezogen auf Ihre Dokumentation ich brauche, um eine Anfrage wie die folgende
Using the example in step 1A, this means you may generate a signature base string that looks like the following:
GET&http%3A%2F%2Fapi.viagogo.net%2FPublic%2FSimpleOAuthAccessRequest&oauth_consumer_key%3Dtestkey%26oauth_nonce%3Dmyn0nc3%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1292404912%26oauth_version%3D1.0%26scope%3DAPI.Public
Ich bin mit dem folgenden code aber wenn ich den Kommentar-Zeilen 1,2 es wieder unbefugte Fehler, und wenn ich Sie verwende es zeigt oauthService.signRequest gibt void zurück.
TradeKingAPI.java
import org.scribe.builder.api.DefaultApi10a;
import org.scribe.model.Token;
public class TradeKingAPI extends DefaultApi10a {
@Override
public String getRequestTokenEndpoint() {
return "http://api.viagogo.net/Public/SimpleOAuthAccessRequest";
}
@Override
public String getAccessTokenEndpoint() {
return "http://api.viagogo.net/Public/SimpleOAuthAccessRequest";
}
@Override
public String getAuthorizationUrl(Token requestToken) {
return "http://api.viagogo.net/Public/SimpleOAuthAccessRequest";
}
}
main.java
import org.scribe.builder.ServiceBuilder;
import org.scribe.model.OAuthRequest;
import org.scribe.model.Response;
import org.scribe.model.Token;
import org.scribe.model.Verb;
import org.scribe.oauth.OAuthService;
import api.TradeKingAPI;
import org.scribe.builder.api.DefaultApi10a;
import org.scribe.model.OAuthConstants;
import org.scribe.oauth.OAuthService;
........
OAuthService oauthService = new ServiceBuilder()
.provider(TradeKingAPI.class)
.apiKey("My consumer key")
.apiSecret("My secret")
.scope("API.Public")
.build();
Long seconds = (System.currentTimeMillis() / 1000);
System.out.println(">>>" + seconds);
String stSeconds = seconds.toString();
OAuthRequest request = new OAuthRequest(Verb.GET, "http://api.viagogo.net/Public
/SimpleOAuthAccessRequest");
request.addOAuthParameter(OAuthConstants.CONSUMER_KEY, "My consumer key");
request.addOAuthParameter(OAuthConstants.NONCE, "myn0nc3");
request.addOAuthParameter(OAuthConstants.SIGN_METHOD, "HMAC-SHA1");
request.addOAuthParameter(OAuthConstants.TIMESTAMP, seconds.toString());
request.addOAuthParameter(OAuthConstants.VERSION, "1.0");
request.addOAuthParameter("scope", "API.Public");
1 String signature = oauthService.signRequest(OAuthConstants.EMPTY_TOKEN, request);
2 request.addOAuthParameter(OAuthConstants.SIGNATURE,signature);
Response response = request.send();
System.err.println(">>" + response.isSuccessful());
System.err.println(">>" + response.getMessage());
System.err.println(">>" + response.getBody());
- haben Sie suchten, sich um und vielleicht finden Sie Ähnliche Fragen
- Warum nicht mit bestehenden Java OAuth-Bibliotheken?
- Ich konnte nicht finden, würde Sie mir ein Beispiel nennen ? oder mich zu einem tutorial bitte danke.
- haben tcame über, dass man vor, aber bevorzugen, um es automatisch zu tun, die Antwort erfordert viele Zeilen Code.
- es gibt nur wenige, wie Schreiber oder JOAuth, um ein paar zu nennen.
- Ich bin mit Schreiber in meiner Frage!
- Frage ist aktualisiert
Du musst angemeldet sein, um einen Kommentar abzugeben.
Von dem, was ich verstehe von Viagogo öffentlichen Zugang zur API-Dokumentation, die token, die Sie erhalten in Schritt 1, das entspricht einer Anfrage-token in eine komplette OAuth-1.0-ein "Tanz".
So, Sie sollten in der Lage sein zu verwenden scribe-java internen Klassen zu bekommen, das token, ohne es von hand. Der einzige Unterschied ist, dass in Schreiber dieser Anfrage sendet auch eine callback-url, um die OAuth-server für den nächsten Schritt der OAuth "Tanz".
Als ich es nicht mehr ein privates Konto ich kann nur Annahme hier. Wir haben 2 Szenarien :
Szenario 1 : Viagogo-server dulden, zusätzliche parameter (z.B. call-back-URL)
also gehen Sie mit diesem code
Dann den Aufruf-code :
Aber wie gesagt, wenn Viagogo-Sicherheit ist ein wenig streng und es weigert sich, die nutzlos param
oauth_callback
, müssen Sie Schalter zu Szenario 2Szenario 2 : Erstellen Sie Ihre eigenen OAuthService
In diesem Szenario erstellen Sie eine neue
OAuthService
zu vermeiden, Umgang mitOAuthCallback
parameter.TrakingApi
Klasse etwas anders sein wird, zu erstellen, die eineOAuth10aServiceForViagogo
beim AufrufcreateService
:Dann den Aufruf-code wird der gleiche sein :
Ich nicht testen, den code, weil ich keinen Zugriff auf die Verbraucher und den geheimen Schlüssel, sondern es sollte in der Nähe, was Sie brauchen.
config
ist einOauthConfig
Objekt. Es ist eine innere Klasse verwendet, die von SchreiberServiceBuilder
es instanziiert wird, wenn Sie anrufenbuild()
: bit.ly/166IUnqorg.scribe.model.SignatureType.QueryString
versuchen zu ersetzenSignatureType
durchSignatureType.QueryString
Ihre IDE finden sollten.RequestTokenEndpoint
ist zwingend erforderlich, oder können wir authentifizieren, die nur mit 'AuthorizationURL' ?Ich nehme an, Sie versuchen, die access token (e.g, die Sie aufrufen SimpleOAuthAccessRequest). Schreibers OauthService hat Methoden, um diese zu bewältigen.
ABER ... wenn du gehst, es manuell zu tun, hier ist was falsch mit Ihrem code - zumindest mit dem, was du hier auflistest. Ich nehme an, Sie haben konfiguriert Schreiber richtig.
Hier ist die aktualisierte code-snippet.
UPDATE:
Haben die Schreiber alle die Oauth-Parameter, die Sie
signRequest
Methode. Früher habe ich gemischt, bis die signRequest mit dem, was gewesen sein solltegetSignature