2013-04-09 70 views
1

大家好我有一個facebook連接問題,我使用這些API使用戶登錄到我的web應用程序使用他們的facebook帳戶,作爲以前一步我從developers.facebook得到一個應用程序ID和應用程序的祕密,問題是,登錄不認證任何帳戶,除了我使用它時,我使用它的應用程序ID和應用程序的祕密,請幫助我理解這些問題是facebook應用程序ID和應用程序祕密具體爲每個用戶使用Facebook連接

注:我使用這些tutorials整合我與Facebook的Web應用程序連接

更加清晰,這是啓動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> 

,這是管理的bean:

@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 ""; 
    } 
} 
} 

回答

1

爲了回答您的標題問題 -
沒有,應用程序ID和祕密是任何用戶都一樣。

這裏的問題(我認爲)是您的應用程序處於沙箱模式。禁用該模式,一切都應該工作。

沙箱模式用於應用程序開發過程中,只有在應用程序設置的「角色」部分中列出的用戶才能訪問該應用程序。

+0

我禁用了沙箱模式,它仍然堅持只認證我用來製作App ID的帳戶!我真的很驚訝 – 2013-04-09 16:08:46

+0

@jav - 只有特定用戶*無法執行任務時的問題通常與沙盒模式設置有關。我能想象的唯一的其他問題是您的代碼中有錯誤;但是這聽起來不太可能,因爲你說它*不適用於創建該應用程序的帳戶。您是否可以在處理auth過程的相關代碼上添加您的問題? – Lix 2013-04-09 16:31:54

+0

我在我的文章中提到的教程中使用應用程序 – 2013-04-09 16:36:13

相關問題