Java Reference
In-Depth Information
authorizeUrl, accessTokenUrl, requiresVerification);
}
public OAuthPostSignatureParameters getOAuthPostSignatureParameters() {
OAuthPostSignatureParameters parameters = new OAuthPostSignatureParameters();
parameters.consumerKey = consumerKey;
OAuthCredentialsResponse accessToken = getAccessToken();
parameters.token = accessToken.token;
// Twitter is sometimes picky on requiring a callback in every request
// As well as the original verifier
parameters.callback = "
http://127.0.0.1/";
if (requiresVerification)
parameters.verifier = getStoredVerifier();
// Construct a new signer
OAuthHmacSigner requestSigner = new OAuthHmacSigner();
requestSigner.clientSharedSecret = consumerSecret;
requestSigner.tokenSharedSecret = accessToken.tokenSecret;
parameters.signer = requestSigner;
return parameters;
}
}
This class simply extends
OAuthParametersProvider
and adds an extra method, which does not
return a set of
OAuthParameters
, but
OAuthPostSignatureParameters
instead. The reason for
this is that Google's OAuth Client Library for Java does not allow you to include
POST
parameters in
the signature, something that Twitter requires (see
https://dev.twitter.com/docs/auth/cr
eat-
similar to Google's
OAuthParameters
:
package com.twitter.api;
import com.google.api.client.auth.oauth.OAuthSigner;
import com.google.api.client.http.GenericUrl;
import com.google.api.client.http.HttpContent;
import com.google.api.client.http.HttpExecuteInterceptor;
import com.google.api.client.http.HttpRequest;
import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.UrlEncodedContent;
import com.google.api.client.util.escape.PercentEscaper;
import java.io.IOException;
import java.security.GeneralSecurityException;
import java.security.SecureRandom;
import java.util.Collection;
import java.util.Map;
import java.util.TreeMap;
public final class OAuthPostSignatureParameters
Search WWH ::
Custom Search