2012-11-05 79 views
0

與標題相同,什麼情況可以在Facebook上使用getUser()函數? P.S.我正在使用Facebook的PHP SDK的API。什麼情況可以在Facebook上使用getUser()函數?

我爲什麼問這個問題,是因爲我發現,如果我的網站不得將facebook.com內,然後的getUser()函數將始終返回null或0

是真的嗎? getUser()函數只能在facebook.com內部的網站上工作?

謝謝。 Facebook的新手

回答

1

如果有足夠的數據可以確定,getUser方法應該返回活動Facebook用戶標識。這些數據可以來自不同的地方:

  1. 簽名的請求 - 這可能來自OAuth認證流程,或者如果它的畫布應用程序,Facebook的把它嵌入到當你的頁面的時候在由
  2. 加載的HTTP POST
  3. 以前保存的會話數據 - 如果以前試圖確定的用戶是成功的,所產生的用戶ID被保存到一個會話變量
  4. 訪問令牌 - 在某些情況下,接入令牌可以用來確定的用戶ID

請參閱getUserFromAvailableData方法的確切細節,從開發人員的角度來看,getUser()將返回當前facebook用戶的id,當用戶在Facebook上進行身份驗證時,並已安裝/授權您的應用程序。要實現這一點,請參閱documentation on login,對於外部網站,最好的選擇是使用Facebook的javascript sdk的login方法來獲取後端(存儲在cookie中)所需的數據。

+0

感謝complex857。這是否意味着,如果我不使用畫布頁(iframe),那麼我將需要使用訪問令牌來獲取用戶ID? P.S. https://graph.facebook.com/oauth/access_token –

+0

嗯,是的,沒有。是的,爲了獲取信息,你必須提交一個有效的訪問令牌,但是如果你使用的是PHP sdk,你不需要明確地處理它,如果有一個可用的(來自serverside auth flow或者js sdk)php sdk會將其提取並添加到您的請求中。 – complex857

相關問題