【发布时间】:2016-09-24 12:01:27
【问题描述】:
我正在使用 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 库的源代码,发现了一些东西
在这里我们可以看到我可以使用 null 参数调用 getAuthorizationUrl(...) 因为它不使用它....但我认为现在的问题是配置未填充...
这是我初始化 facebook 服务的方式:
new ServiceBuilder()
.provider(FacebookApi.class)
.apiKey(....)
.apiSecret(....)
.scope("email,offline_access")
.callback("oauth://facebook")
.build();
这对吗?
谢谢!
【问题讨论】:
-
Facebook 使用 OAuth 版本 2,Twitter 使用 OAuth 1。你知道区别吗?
-
我知道...我认为这是问题所在...但我不太清楚它们之间的区别...
-
您的 2 个协议有误,请参阅下面的答案。