2009-12-28 122 views
1

我幾乎有臉書連接工作的方式,我需要它在我的網站上,我需要找出幾個錯誤仍然,下面是從Facebook連接文件,它列出FB連接設置下面的3個不同的URL選項。這對我來說可能非常有用,因爲當用戶第一次登錄我的網站時,我需要在Facebook上創建包含個人資料數據的mysql個人資料。Facebook連接Ping與重定向URL?

好吧,我有點困惑,我明白一個重定向URL只是將瀏覽器重定向到一個頁面,但是你可以看到下面保存的這些鏈接中的2個是回調URL,所以我認爲這是Facebook發佈的數據到我提供的網址?如果我是正確的,我怎麼知道它在Ping中發回的數據?

1)

後授權回調網址:Facebook的 坪當用戶授權 您首次應用此URL。 您也可以致電users.isAppUser至 確定用戶是否已授權 您的應用程序。

2)

後授權重定向URL:您可以 用戶重定向到該網址的用戶 授權您的應用程序 後的第一次。只有當用戶通過login.php而不是 授權登錄對話框時,您纔可以使用此URL 。

3)

後刪除回調網址:Facebook的 坪的網址,當用戶刪除您 應用。


當用戶在瀏覽器重定向我可以像這樣運行代碼到那裏從Facebook的個人資料數據,但我不知道當Facebook坪數據?

$user_details=$fb->api_client->users_getInfo($fb_user, array('last_name', 'first_name', 'proxied_email','birthday_date', 'sex', 'is_app_user', 'current_location', 'about_me', 'activities', 'interests', 'relationship_status', 'pic_big', 'pic_small', 'books')); 

$firstName = $user_details[0]['first_name']; 
..... 

回答

2

我不認爲我completelly明白你的問題,所以我會盡力回答我可以 - 如果有什麼遺漏,請在這裏評論,我會相應地編輯答案。

你是對的,假設Facebook在ping時發送POST數據。所以,基本上你要在給出的端點上做什麼(你告訴facebook要ping的url)是讀取你想要的數據的$_REQUEST字典。 Facebook上發送的每個參數列表可以在here找到。

會出現什麼情況如下:

  1. 用戶點擊與您的網站與Facebook連接
  2. Facebook的連接登錄頁面顯示確認用戶詢問他是否允許這種操作
  3. 如果允許,臉譜POST數據發送到指定的URL儘快

同樣的情況,當用戶通過Facebook Connect從您的網站刪除自己。

請注意,您應仔細驗證端點上收到的數據。由於您要在每個帖子請求上創建永久性數據,因此至少要使用確保只能從facebook接收請求。

或者,您可以在授權後的某個地方重定向用戶,請致電users_getInfo並檢查is_app_user是否爲真。如果是這樣,你繼續在你的數據庫上創建你的實體。

0

1)Post-Authorize回撥是當用戶授權您的應用程序/網站時,Facebook將發佈一些數據的網址。這是通過任何手段,而不僅僅是通過Facebook連接。您應該保留隨此傳遞的用戶標識,以便您可以跟蹤哪些用戶已授權您的應用程序/站點。然後,您可以使用用戶標識向用戶發送消息(即通知),即典型的應用程序到用戶消息。 這是「ping」,因爲Facebook會忽略您發送的任何回覆。你沒有迴應。

2)用戶授權您的應用程序後,您可以選擇讓Facebook將用戶發送到此URL。例如,歡迎頁面和/或介紹。 Facebook Connect下不會發生這種情況,只能在Facebook平臺下進行。

3)正好與#1相反。 Facebook只是讓你知道有人刪除/取消了你的申請。同樣,你不需要回應。

項目#1和#2是您如何跟蹤哪些用戶ID已授權您的應用程序。你無法查詢Facebook的這一點。 如果用戶登錄Facebook並已與您的網站連接,Facebook會在您的域名下寫入Cookie。當用戶到達時,您可以隨時檢查此cookie並將其自動登錄到您的網站。當然,你應該驗證cookie數據。這樣做的說明: http://wiki.developers.facebook.com/index.php/Verifying_The_Signature