首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >+ Xing =>无效OAuth签名

+ Xing =>无效OAuth签名
EN

Stack Overflow用户
提问于 2016-01-31 13:56:01
回答 1查看 468关注 0票数 1

我试着用文士和行,我总是得到以下的答案:

代码语言:javascript
复制
Can't extract token and secret from this: '{"message":"Invalid OAuth signature","error_name":"INVALID_OAUTH_SIGNATURE"}'

我有一个有效的登录过程,返回一个oauth_token和一个oauth_verifier,并试图用PlainText签名更改默认选择的HMACSha1签名,但我将始终得到上述结果.

对为什么会发生这种事有什么想法吗?

在上面提到的步骤中使用默认的DefaultApi10aXingApi总是失败的。

编辑-代码

代码语言:javascript
复制
// Creating the service
// callback is needed to stop redirecting in the webview
OAuthService service = new ServiceBuilder()
            .provider(XingApi.class)
            .apiKey(apiKey)
            .apiSecret(apiSecret)
            .callback("http://www.xing.com")
            .build();

步骤1:获取请求令牌+ auth url

代码语言:javascript
复制
RequestToken requestToken = service.getRequestToken();
String authUrl = service.getAuthorizationUrl(requestToken );

步骤2:在webview中加载auth url +检查重定向url并根据回调取消重定向

例如,重定向url如下所示:http://www.xing.com?oauth_token=a2191ab84c9e0f85cf0c&oauth_verifier=4978

步骤3:从返回的url中提取oauth_token + oauth_verifier

代码语言:javascript
复制
String oauthToken = ...; // a2191ab84c9e0f85cf0c in the example
String oauthVerifier = ...; // 4978 in the example

步骤4:获取访问令牌=>失败

代码语言:javascript
复制
Token requestToken = new Token(oauthToken, oauthVerifier); // reusing the request token from above results in invalid request token answer from xing!
Verifier v = new Verifier(oauthVerifier);
Token accessToken = service.getAccessToken(requestToken, v);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-01 20:39:20

移除:

Token requestToken = new Token(oauthToken, oauthVerifier); // reusing the request token from above results in invalid request token answer from xing!

从第四步开始。

您必须保存请求令牌才能使用请求令牌和验证器(4位PIN)从Xing检索访问令牌。

编辑-代码添加:

代码语言:javascript
复制
OAuth10aService service = new ServiceBuilder()
    .apiKey("44a4f9c1a9daa88f4da2")
    .apiSecret("2fc8ca373dab772acc4de7ce22718f8fced6919c")
    .callback("https://redirect.example.com")
    .build(XingApi.instance());

final Token requestToken = service.getRequestToken();

System.out.println(service.getAuthorizationUrl(requestToken));
System.out.println("Paste the verifier here");
System.out.print(">>");
Scanner in = new Scanner(System.in);
Verifier verifier = new Verifier(in.nextLine());
System.out.println();
in.close();

// Trade the Request Token and Verfier for the Access Token
Token accessToken = service.getAccessToken(requestToken, verifier);
System.out.println("Got the Access Token! " + accessToken);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35114626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档