0

在这两个网站上,他们都要求提供令牌秘密和消费者秘密: http: //oauth.googlecode.com/svn/code/javascript/example/signature.html http://developer.netflix.com/resources/OAuthTest#instructions

如何以编程方式设置它们:

public void excecuteSigning(String targetURL){
            HttpRequestAdapter requestSig = new HttpRequestAdapter(new HttpGet("http://photos.example.net/photos"));
            HttpParameters requestparameters = new HttpParameters();
            OAuthMessageSigner signer = new HmacSha1MessageSigner();

requestparameters.put(OAuth.OAUTH_CONSUMER_KEY, "dpf43f3p2l4k3l03");        
            requestparameters.put(OAuth.OAUTH_TOKEN, "nnch734d00sl2jdk");
            requestparameters.put(OAuth.OAUTH_NONCE, "kllo9940pd9333jh");
            requestparameters.put(OAuth.OAUTH_TIMESTAMP, "1191242096");
            requestparameters.put(OAuth.OAUTH_SIGNATURE_METHOD, "HMAC-SHA1");
            requestparameters.put(OAuth.OAUTH_VERSION, "1.0");
            requestparameters.put("size", "original");
            requestparameters.put("file", "vacation.jpg");
            String OAUTH_SIG = signer.sign(requestSig, requestparameters);
            System.out.println(OAUTH_SIG);
}

///上面生成这个签名:rYexRY70p6aDDWw0ox0SwERRK2w=

///下面的代码没有生成正确的签名

requestparameters.put("oauth_consumer_secret", "kd94hf93k423kf44");
            requestparameters.put(OAuth.OAUTH_TOKEN_SECRET, "pfkkdhi9sl3r4s00");
4

2 回答 2

0

请包含您客户的完整源代码。使用您提供的值,google oauth 测试链接提供此签名 -

OAuth realm="",oauth_version="1.0",oauth_consumer_key="dpf43f3p2l4k3l03",oauth_token="nnch734d00sl2jdk",oauth_timestamp="1191242096",oauth_nonce="kllo9940pd9333jh",oauth_signature_method="HMAC-SHA1",oauth_signature="tR3%2BTy81lMeYAr%2FFid0kMTYa%2FWM%3D"

您的客户生成什么签名值?

于 2012-04-16T19:18:28.487 回答
0
OAuthMessageSigner signer = new HmacSha1MessageSigner();
     signer.setConsumerSecret(consumerSecret);
     signer.setTokenSecret(tokenSecret);

现在可以正常工作并生成正确的签名。

于 2012-04-16T22:41:41.007 回答