Facebook graph api 通过“应用和网站”将我的网站从Facebook上删除后不再工作
我的网站SpringMVC允许用户使用他们的Facebook帐户注册,然后使用他们的Facebook帐户登录我的网站。我使用Java 6.6.3版与Facebook进行Oauth集成 我已经测试了一个用例,但找不到解决它的方法。以下是步骤列表: 测试人员进入我的站点的登录页面,单击使用Facebook登录,授予Facebook的权限,重定向到我的站点,然后注销。这是一个正常且成功的流程。 测试人员在Facebook.com上登录Facebook 测试人员进入设置->应用程序和网站并删除我的网站 测试人员进入我的站点的登录页面,单击“使用Facebook登录”按钮,重定向到Facebook,并看到一条错误消息。 在步骤4,测试人员总是在Facebook站点上收到一条错误消息,而不是要求测试人员再次授予权限。请参见以下屏幕截图: 我在Facebook上找不到一种方法,在单击“使用Facebook登录”按钮时删除此消息。这是我的web界面代码。我错过什么了吗Facebook graph api 通过“应用和网站”将我的网站从Facebook上删除后不再工作,facebook-graph-api,oauth,oauth-2.0,facebook-oauth,scribe,Facebook Graph Api,Oauth,Oauth 2.0,Facebook Oauth,Scribe,我的网站SpringMVC允许用户使用他们的Facebook帐户注册,然后使用他们的Facebook帐户登录我的网站。我使用Java 6.6.3版与Facebook进行Oauth集成 我已经测试了一个用例,但找不到解决它的方法。以下是步骤列表: 测试人员进入我的站点的登录页面,单击使用Facebook登录,授予Facebook的权限,重定向到我的站点,然后注销。这是一个正常且成功的流程。 测试人员在Facebook.com上登录Facebook 测试人员进入设置->应用程序和网站并删除我的网站
@RequestMapping( value="/facebook", method = RequestMethod.GET)
public void facebook(HttpServletRequest request,
@RequestParam(value = "page", required = true) String page,
HttpServletResponse response) throws Exception {
try {
OAuth20Service service = new ServiceBuilder(config.getProperty("facebook.clientId"))
.apiSecret(config.getProperty("facebook.clientSecret"))
.callback(getCallback())
.build(FacebookApi.instance());
String authUrl = service.getAuthorizationUrl();
response.sendRedirect(authUrl);
} catch (Exception e) {
response.sendRedirect("/oauthFail");
}
}
@RequestMapping( value="/facebook/callback", method = RequestMethod.GET)
public void facebookCallback(HttpServletRequest servletRequest,
@RequestParam(value = "code", required = false) String code,
@RequestParam(value = "error", required = false) String error,
HttpServletResponse servletResponse
) throws Exception {
try {
OAuth20Service service = new ServiceBuilder(config.getProperty("facebook.clientId"))
.apiSecret(config.getProperty("facebook.clientSecret"))
.callback(getCallback())
.build(FacebookApi.instance());
OAuth2AccessToken accessToken = service.getAccessToken(code);
final OAuthRequest request = new OAuthRequest(Verb.GET, "https://graph.facebook.com/v3.2/me");
service.signRequest(accessToken, request);
final com.github.scribejava.core.model.Response response = service.execute(request);
String body = response.getBody();
JSONObject jObject = new JSONObject(body);
String email = jObject.getString("email");
//success. use the email to create an account or if the email address exists, direct a userto their account page
} catch (Exception e) {
response.sendRedirect("/oauthFail");
}
}
如何处理这种情况?我觉得要么是我的代码出了问题,要么是Java有框架问题。或者这是Facebook特有的问题?我刚刚测试了这个案例。无法复制。 您是否尝试运行此示例 ? 我认为你的问题可能与Facebook中的API版本逻辑有关。
您可以尝试显式使用最新版本。buildFacebookApi.customVersion3.2我通过maven使用了scribejava 6.3.0。我使用了.buildFacebookApi.customVersion3.2而不是.buildFacebookApi.instance;在上述代码中。现在,从我的网站到Facebook的url是https://www.facebook.com/v3.2/dialog/oauth?redirect_uri=.... 我仍然看到相同的错误消息,而不是请求我的许可。上面的代码是我所有的代码。您是否在web界面中测试了确切的用例?我收到了一封来自Google的电子邮件,上面说Google+API将于2019年3月7日关闭。我的站点与Google的注册/登录集成基于以下示例:此示例使用googleapis URL。我的选择是什么?我用过这个例子。你也可以试试。你拥有它-关于谷歌的问题已经离题了,不是吗?不管怎样,你需要什么选择?