我正在尝试将facebook登录与我的网站集成。以下是我的部分代码:
public void socialConnect() throws Exception {
Properties props = System.getProperties();
props.put("graph.facebook.com.consumer_key", "561379830565954");
props.put("graph.facebook.com.consumer_secret", "883e8d729d0358b4040fbffa762d832d");
props.put("graph.facebook.com.custom_permissions", "publish_stream,email,user_birthday,user_location,offline_access");
SocialAuthConfig config = SocialAuthConfig.getDefault();
config.load(props);
manager = new SocialAuthManager();
manager.setSocialAuthConfig(config);
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
String successURL = externalContext.getRequestContextPath() + "/socialLoginSuccess.xhtml";
String authenticationURL = manager.getAuthenticationUrl(providerID, successURL);
FacesContext.getCurrentInstance().getExternalContext().redirect(authenticationURL);
}
我收到以下错误:
{
"error": {
"message": "redirect_uri isn't an absolute URI. Check RFC 3986.",
"type": "OAuthException",
"code": 191
}
}
redirecct_uri应该是什么?我怎么能解决它,任何人都可以帮助吗?
由于
答案 0 :(得分:3)
您的redirect_uri
必须是包含协议(http(s)://
),域名,路径等的完全限定网址。
如果您正在编写桌面应用程序,根据How to login / authenticate facebook without browser for desktop application in C#,没有明确支持桌面应用程序,但有一种解决方法(并在该问题中概述)。