2012-02-20 35 views
0

我得建立在現場的API:上用戶操作api.domain.comdomain.com - > AJAX - > api.domain.com與Facebook API

內API是對象,評論,帖子等,我也有當前設置吐出

$facebook->getUser() 

當我進入我的API在我的瀏覽Facebook的對象,則返回我的Facebook個人資料的正確ID。當我從subdomain-x.domain.com執行ajax調用時,返回0。

有沒有辦法做到這一點,而無需在主域上運行Facebook PHP SDK,而不是與我的API集成?

回答

2

我不會說這是可能的。

  • 當您創建api.domain.com一個Facebook會話,Facebook的API本身使用cookies
  • 當你發送一個Ajax請求到另一個域,您必須在考慮到同源策略生效。
  • 當您向其他域發送ajax請求時,屬於指定域的所有cookie都將被髮送。
1

facebook SDK默認情況下使用PHP會話來存儲用戶信息,會話cookie不會在整個域中設置。

您可能必須使用session_set_cookie_params更改此設置,但是如果您編寫API,那麼用戶無法通過Facebook進行授權,因此您無法訪問Cookie。

+0

這是我錯過的觀點。 +1 – 2012-07-12 07:38:36

相關問題