Hello!

I am trying to get Google User Email using Email Display Scope
described here: http://sites.google.com/site/oauthgoog/Home/emaildisplayscope
The oauthParameters contain valid access_token and
access_token_secret. Using these tokens I can access picasa albums and
user's gmail inbox. I have also authorized the token key for email
display scope https://www.googleapis.com/userinfo/email.

My problem is when I call the function below I get an error BAD
REQUEST. I tired  OAuthUtil.encode() parameters twice. Does not help.
Please advise me what is the problem with request?



public String getCurrentGmailUserName(GoogleOAuthParameters
oauthParameters) {
        String returnValue = null;
        try {

            String oauth_timestamp = OAuthUtil.getTimestamp();
            String oauth_nonce = OAuthUtil.getTimestamp();
            String oauth_token = oauthParameters.getOAuthToken();
            String oauth_signature_method = "HMAC-SHA1";
            String signature = null;
            String oauth_consumer_key = "_here_is_my_consumer_key";

            Map<String, String> params = new HashMap();
            params.put("oauth_consumer_key",
OAuthUtil.encode(oauth_consumer_key));
            params.put("oauth_nonce", OAuthUtil.encode(oauth_nonce));
            params.put("oauth_signature_method",
OAuthUtil.encode(oauth_signature_method));
            params.put("oauth_timestamp",
OAuthUtil.encode(oauth_timestamp));
            params.put("oauth_token", OAuthUtil.encode(oauth_token));
            params.put("oauth_version", OAuthUtil.encode("1.0"));

            String signatureBase =
OAuthUtil.getSignatureBaseString("https://www.googleapis.com/userinfo/
email", "GET", params);
            signature = computeHmac(signatureBase,
Commons.CONSUMER_SECRET);

            HttpClient client = new HttpClient();
            HttpMethod method = new GetMethod("https://
www.googleapis.com/userinfo/email");
            method.addRequestHeader("Host:", "www.googleapis.com");
            method.addRequestHeader("Accept:", "*/*");

            method.addRequestHeader("Content-Type:", "application/atom
+xml");

            StringBuilder authorization = new StringBuilder();
            authorization.append("OAuth ");
            authorization.append("oauth_token=\"" +
OAuthUtil.encode(oauth_token) + "\",");
            authorization.append("oauth_signature_method=\"" +
oauth_signature_method + "\",");
            authorization.append("oauth_signature=\"" +
OAuthUtil.encode(signature) + "\",");
            authorization.append("oauth_consumer_key=\"" +
OAuthUtil.encode(oauth_consumer_key) + "\",");
            authorization.append("oauth_timestamp=\"" +
OAuthUtil.encode(oauth_timestamp) +"\",");
            authorization.append("oauth_nonce=\"" +
OAuthUtil.encode(oauth_nonce)+"\",");
            authorization.append("oauth_version=\""+
OAuthUtil.encode("1.0")+"\"");

            method.addRequestHeader("Authorization:",
OAuthUtil.encode(authorization.toString()));

            // Execute the method.
            int statusCode = client.executeMethod(method);
            System.out.println(statusCode);

            // read response body
            returnValue = method.getResponseBodyAsString();
            System.out.println(returnValue);

        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return returnValue;
    }

-- 
You received this message because you are subscribed to the Google Groups 
"OAuth" group.
To post to this group, send email to oa...@googlegroups.com.
To unsubscribe from this group, send email to 
oauth+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/oauth?hl=en.

Reply via email to