【发布时间】:2014-08-14 21:12:06
【问题描述】:
我必须在 Flickr 上授权用户,所以我在 Flickr 上注册了我的应用程序,并硬编码了 key、secret 和 callbackUrl 的值。 现在,我正在使用 scribe 库,而不是强制用户复制并提交验证程序,我想从回调 url 获取参数 frob。 我在 Java 中实现了所有功能,使用 servlet 会话来捕获重定向。 代码如下:
public class FlickrAuth extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
OAuthService service = new ServiceBuilder().
provider(FlickrApi.class)
.apiKey(FLICKR_KEY)
.apiSecret(FLICKR_SECRET)
.callback("https://something.com/flickr")
.build();
Token requestToken = service.getRequestToken();
String authorizationUrl = service.getAuthorizationUrl(requestToken);
String url = authorizationUrl + "&perms=read";
//Make a request to the url
response.sendRedirect(url);
}
servlet 回调是这样管理的:
public class FlickrCallback extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String code = request.getParameter("frob");
OAuthService service = new ServiceBuilder().
provider(FlickrApi.class)
.apiKey(FLICKR_KEY)
.apiSecret(FLICKR_SECRET)
.callback(https://something.com/flickr)
.build();
Token requestToken = service.getRequestToken();
Verifier verifier = new Verifier(code);
Token accessToken = service.getAccessToken(requestToken, verifier);
}
当我尝试构建验证器时,服务器会引发此异常:
java.lang.IllegalArgumentException: Must provide a valid string as verifier
看来redirect没有frob参数..但是回调是正确的,并且在Flick应用程序上正确注册..有人可以帮助我吗?
谢谢!
【问题讨论】:
标签: java servlets oauth flickr scribe