gpt4 book ai didi

twitter - 处理您的 OAuth 请求时出错 : Invalid oauth_verifier parameter

转载 作者:行者123 更新时间:2023-12-05 07:54:07 44 4
gpt4 key购买 nike

我正在关注 https://dev.twitter.com/web/sign-in/implementing使用 Twitter 在我的应用程序中实现 OAuth 注册。

这是向用户显示来自 Twitter 的授权此应用对话框的服务:

@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/twitter")
public Response redirectToTwitter() {
Configuration cfg = new ConfigurationBuilder().setOAuthConsumerKey(TWITTER_CONSUMER_KEY)
.setOAuthConsumerSecret(TWITTER_CONSUMER_SECRET)
.build();
Twitter twitter = new TwitterFactory(cfg).getInstance();
String callbackURL = "https://localhost:9090/app/ui/oauth/twitter";
try {
RequestToken requestToken = twitter.getOAuthRequestToken(callbackURL);
String authURL = requestToken.getAuthenticationURL();
return Response.seeOther(URI.create(authURL)).build();
} catch (TwitterException e) {
LOG.error(e.getMessage(), e);
return ErrorResponse.create(e.getMessage());
}
}

这有效并将浏览器重定向到请求授权的 Twitter 页面。当我单击“登录”时,会出现重定向对话框,它将我重定向到类似以下内容的 URL:

https://localhost:9090/app/ui/oauth/twitter?oauth_token=6oWQxQAAAAAAgyORAAABTtmVVFM&oauth_verifier=GMX5SiqnkFfUu2MgirTDJnkJmtHZXn5H

@GET
@Path("/twitter")
public SocialSignInView login(@QueryParam("oauth_token") String token,
@QueryParam("oauth_verifier") String verifier) {
Configuration cfg = new ConfigurationBuilder().setOAuthConsumerKey(TWITTER_CONSUMER_KEY)
.setOAuthConsumerSecret(TWITTER_CONSUMER_SECRET)
.setOAuthAccessToken(token)
.build();
Twitter twitter = new TwitterFactory(cfg).getInstance();
String callbackURL = "https://localhost:9090/app/ui/oauth/twitter";
String screenName = null;
try {
RequestToken requestToken = twitter.getOAuthRequestToken(callbackURL);
AccessToken accessToken = twitter.getOAuthAccessToken(requestToken, verifier);
screenName = accessToken.getScreenName();
} catch (TwitterException e) {
LOG.error(e.getMessage(), e);
}

return new SocialSignInView(screenName);
}

根据 https://dev.twitter.com/web/sign-in/implementing,此时我拥有所有必需的参数3. - 要检索访问 token ,但是,我不知道如何从现有的 oauth_token 中组合一个 RequestToken 对象。

使用上面的代码我收到以下错误:

ERROR 13:33:06.478 [dw-165 - GET /app/ui/oauth/twitter?oauth_token=6oWQxQAAAAAAgyORAAABTtmVVFM&oauth_verifier=GMX5SiqnkFfUu2MgirTDJnkJmtHZXn5H] r.d.d.resources.SocialSignInCompleteResource: 401:Authentication credentials (https://dev.twitter.com/pages/auth) were missing or incorrect. Ensure that you have set valid consumer key/secret, access token/secret, and the system clock is in sync.
Error processing your OAuth request: Invalid oauth_verifier parameter

最佳答案

请求https://api.twitter.com/oauth/access_token时需要在header中设置oauth_verifier .您将获得的这些 oauth_verifier 作为获取参数。所以只需在 header 中设置 oauth_verifier=params[:oauth_verifier]。

关于twitter - 处理您的 OAuth 请求时出错 : Invalid oauth_verifier parameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31699421/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com