小编Lya*_*der的帖子

Twitter oauth无效的oauth_verifier参数

我正在使用Java实现oauth以及以下序列:

1)发送POST https://api.twitter.com/oauth/request_token(带回调)Twitter响应包含oauth_token,oauth_token_secret和oauth_callback_confirmed = true

2)重定向到https://api.twitter.com/oauth/authenticate?oauth_token = {来自Twitter的先前回复的oauth_token}

3)出现Twitter登录表单,我点击"登录"按钮.

4)Twitter重定向到{callback_url}?oauth_token = {此标记等于来自oauth/request_token响应的标记}&oauth_verifier = {verifier}

5)POST https://api.twitter.com/oauth/access_token,Oauth标头包含oauth_token,邮件正文包含oauth_verifier = {return verifier}

6)Twitter响应=处理您的OAuth请求时出错:oauth_verifier参数无效

oauth_verifier有什么问题?

计算签名方法:

private static String computeSignature(String baseString, String keyString) throws GeneralSecurityException, UnsupportedEncodingException {
        SecretKey secretKey = null;

        byte[] keyBytes = keyString.getBytes();
        secretKey = new SecretKeySpec(keyBytes, "HmacSHA1");

        Mac mac = Mac.getInstance("HmacSHA1");
        mac.init(secretKey);

        byte[] text = baseString.getBytes();

        return new String(Base64.encodeBase64(mac.doFinal(text))).trim();
    }
Run Code Online (Sandbox Code Playgroud)

第一次请求的代码:

String oauth_signature_method = "HMAC-SHA1";

    // generate any fairly random alphanumeric string as the "nonce".
    String uuid_string = UUID.randomUUID().toString();
    uuid_string = …
Run Code Online (Sandbox Code Playgroud)

java twitter oauth

5
推荐指数
1
解决办法
1584
查看次数

标签 统计

java ×1

oauth ×1

twitter ×1