Я новичок в JAVA и использую фреймворк для создания веб-сайта. Я пытаюсь интегрировать Facebook oauth на свой сайт. Код, который у меня есть:Facebook OAuth Исключение: redirect_uri отсутствует
// This function is called to populate _facebook, _facebookAuthParams and
// _facebookTokenParams. The first two are HashMaps and _facebookTokenParams is
// ObjectNode
private static void _initFacebook() {
String _url = "shutterdeck.com:8080";
_facebook.put("authUrl", "https://graph.facebook.com/oauth/authorize");
_facebook.put("tokenUrl", "https://graph.facebook.com/oauth/access_token");
_facebookAuthParams.put("scope", "email");
_facebookAuthParams.put("responseType", "code");
_facebookAuthParams.put("redirect_uri", _url + "/oauth/facebookRedirect");
_facebookAuthParams.put("client_id", "..");
_facebookTokenParams.put("grant_type", "authorization_code");
_facebookTokenParams.put("redirect_uri", _url + "/oauth/facebookRedirect");
_facebookTokenParams.put("scope", "email");
_facebookTokenParams.put("client_id", "...");
_facebookTokenParams.put("client_secret", "...");
}
ниже функция пытается принести access_token от Facebook:
public static Result facebookRedirect() {
Map<String, String[]> query = request().queryString();
if (query.containsKey("code")) {
String[] value = query.get("code");
String code = value[0];
if (value.length > 1 || code.isEmpty())
return redirect("/");
String tokenUrl = _getTokenUrl(_facebook);
_facebookTokenParams.put("code", code);
Promise<WS.Response> promise = WS.url(tokenUrl).post(_facebookTokenParams);
Function<WS.Response, Result> f = new Function<WS.Response, Result>() {
public Result apply(WS.Response response) {
System.out.println(response.asJson()); // This prints an error json from face book
String token = response.asJson().get("token").asText();
_getFacebookUserInfo(token);
return ok("/");
}
};
return async(promise.map(f));
}
return ok("404");
}
ошибка, которую я получаю от Facebook является:
{"error":{"message":"Missing redirect_uri parameter.","type":"OAuthException","code":191}}
Я подтвердил, что redirect_url присутствует в _facebookTokenParams
, который передается в post
. Что может быть что-то, чего я здесь не хватает? Кроме того, как я могу просмотреть POST request
, который отправляется на Facebook?