gpt4 book ai didi

java - Scribe 的 Oauth 问题

转载 作者:行者123 更新时间:2023-11-29 09:39:52 25 4
gpt4 key购买 nike

我正在使用 scribe 制作一个支持 oauth 的应用程序。我没有发现使用 Twitter 的问题,但是使用 Facebook 时我遇到了问题...

这是在 twitter oauth 上运行的代码

OAuthService s = /* ... Facebook oauth init ... */
final Token requestToken = s.getRequestToken();
final String authURL = s.getAuthorizationUrl(requestToken);

它在第二行给我一个错误:

12-20 10:01:31.475: E/AndroidRuntime(5405): java.lang.UnsupportedOperationException: Unsupported operation, please use 'getAuthorizationUrl' and redirect your users there
12-20 10:01:31.475: E/AndroidRuntime(5405): at org.scribe.oauth.OAuth20ServiceImpl.getRequestToken(OAuth20ServiceImpl.java:45)

我知道它说我可能会使用 getAuthorizationUrl...但是我必须传递一个 requestToken...

你能帮帮我吗?

任何关于 Scribe 和 Facebook 的例子都会很有帮助

谢谢!

PS: Windows Live 同样的问题! =(

编辑:

我一直在看 Scribe 库的源代码,我发现了一些东西

https://github.com/fernandezpablo85/scribe-java/blob/master/src/main/java/org/scribe/oauth/OAuth20ServiceImpl.java

在这里我们可以看到我可以使用 null 参数调用 getAuthorizationUrl(...) 因为它不使用它....但我认为现在的问题是配置未填充...

下面是我如何初始化 facebook 服务:

new ServiceBuilder()
.provider(FacebookApi.class)
.apiKey(....)
.apiSecret(....)
.scope("email,offline_access")
.callback("oauth://facebook")
.build();

这是正确的吗?

谢谢!

最佳答案

private static final Token EMPTY_TOKEN = null;

OAuthService service = new ServiceBuilder()
.provider(FacebookApi.class)
.apiKey(apiKey)
.apiSecret(apiSecret)
.callback("http://www.example.com/oauth_callback/")
.build();
String authorizationUrl = service.getAuthorizationUrl(EMPTY_TOKEN);

您现在只需将用户重定向到此 URL 并让他验证他们自己以从 facebok 获取代码。

几乎所有主要的 Oath 都有大量的示例和非常好的文档系统

这里是 Facebook

FacebookExample

对于所有主要供应商 Scribe Example Directory

编辑

看完讨论后,我的建议是全面了解 Oauth1 和 Oauth2。

关于java - Scribe 的 Oauth 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8573272/

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