Привет всем, у меня есть проблема с подключением facebook, я использую этот API, чтобы пользователи могли войти в мое веб-приложение, используя свою учетную запись facebook, как предыдущую шаг я получаю идентификатор приложения и секрет APP от developers.facebook, проблема в том, что логин не аутентифицирует учетную запись, кроме той, которую я использую, когда я делаю идентификатор приложения и секрет приложения, пожалуйста, помогите мне в понимании этой проблемы.Являются ли facebook App ID и App Secret конкретными для каждого пользователя, использующего facebook connect
Примечание: Я использую эти tutorials интегрировать мой веб-приложение с Facebook Connect
для большей ясности, это стартовая страница JSF (исходный код доступен в ссылке м entioned в моем посте):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
</h:head>
<h:body>
<h1>Login Page</h1>
<h:form id="loginForm">
<p:button value="Facebook Connect" href="#{loginPageCode.facebookUrlAuth}" />
<br/><br/>
<h:outputText value="#{loginPageCode.userFromSession}"></h:outputText>
</h:form>
</h:body>
и это управляемый компонент:
@ManagedBean(name = "loginPageCode")
@SessionScoped
public class LoginPageCode implements Serializable {
private static final long serialVersionUID = -1611162265998907599L;
public String getFacebookUrlAuth() {
HttpSession session = (HttpSession) FacesContext.getCurrentInstance()
.getExternalContext().getSession(false);
String sessionId = session.getId();
String appId = "3827326728372872";
String redirectUrl = "http://localhost:8080/Test/index.sec";
String returnValue = "https://www.facebook.com/dialog/oauth?client_id="
+ appId + "&redirect_uri=" + redirectUrl
+ "&scope=email,user_birthday&state=" + sessionId;
System.out.println("Return Value---->"+returnValue);
return returnValue;
}
public String getUserFromSession() {
HttpSession session = (HttpSession) FacesContext.getCurrentInstance()
.getExternalContext().getSession(false);
String userName = (String) session.getAttribute("FACEBOOK_USER");
System.out.println("FACEBOOK_USER-->"+userName);
if (userName != null) {
return "Hello " + userName;
} else {
return "";
}
}
}
i отключил режим песочницы, и он по-прежнему настаивает на аутентификации только учетной записи, которую я использовал для создания идентификатора приложения! я действительно удивлен –
@jav - проблемы, когда только определенные * пользователи * не могут выполнять задачи, обычно связаны с настройкой режима песочницы. Единственная проблема, которую я мог себе представить, это то, что у вас есть ошибка в вашем коде; Но это не кажется вероятным, поскольку вы говорите, что это * работает * для учетной записи, которая создала приложение. Не могли бы вы добавить к своему вопросу выше какой-либо соответствующий код, который касается процесса auth? – Lix
Я использую приложение в учебнике, упомянутом в моем сообщении –