2009-08-21 43 views
0

我有興趣使用Facebook作爲驗證某人是我外部網站上的朋友的方式,並基於此向他們展示特殊內容。Facebook外部網站上的朋友驗證

裏面Facebook,請考慮以下情況:

  1. 我張貼的照片和授予權限的朋友只能
  2. 有人試圖通過URL
  3. 查看我的照片,如果這個人是我的朋友,Facebook的顯示相片。

我想模仿我自己的個人網站這種行爲:

  1. 用戶點擊鏈接後,以「私人」的內容
  2. 我的網站(無論是服務器端,JS,阿賈克斯,IFRAME ,無論如何)詢問Facebook是否在他們的瀏覽器中登錄Facebook。
  3. 如果不是,用戶會看到一個Facebook彈出窗口登錄。
  4. 當用戶登錄時,我的站點詢問Facebook是否是我的朋友(ID編碼到站點中),如果是,提供給他們與內容

這可能不需要用戶「授權」我的網站或應用程序?我唯一的想法(基於http://wiki.developers.facebook.com/index.php/Authorizing_Applications)是我可以爲我的網站創建一個應用程序,然後在外部網站上,將我的Facebook應用程序加載到一個隱藏的iframe中(這反過來將我的網站加載到一個iframe中)來給我的網站Facebook用戶ID並將其存儲在會話中。

完成此操作的最佳方法是什麼?

+0

我沒有答案,所以我不會發佈一個,但我不認爲這是可能的。 – MitMaro 2009-08-21 23:36:44

回答

1

是的,這應該是可能的。你將不得不利用Facebook Connect。基本流程就像你上面描述的那樣:

  1. 您的網站上的用戶遵循鏈接 私人內容。此內容是 在您的數據庫(或以其他方式)與所有者的Facebook ID中標記的內容。
  2. 您的網站使用Facebook API至 檢查訪客是否登錄到Facebook的 。如果不是,則拒絕 訪問。
  3. 如果他們登錄,您可以 利用friends.areFriends API方法 到訪問者的Facebook ID 與內容所有者的Facebook ID進行比較。如果他們不是朋友,請拒絕 訪問,否則可以顯示它。

儘管可怕的文檔很難理解,但Facebook Connect實際上相當容易實現。一旦啓動並運行,基本上意味着任何登錄到Facebook的訪問者都將爲您提供一個會話密鑰,您可以使用該密鑰向Facebook查詢有關它們的信息。

+0

我試圖決定是否可以將此標記爲已接受的答案。我只需要知道一件事 - 是否有任何方法可以執行上面列出的步驟,而無需通過Facebook Connect授權彈出窗口提示他們? (I.E.,類似於我的IFRAME想法?) – Nicole 2009-09-02 16:06:29

+0

爲了使用Facebook API獲取好友信息,您的網絡訪問者將不得不在某個時間點登錄Facebook。否則你無法獲得朋友信息。如果您能夠在沒有活動會話的情況下查詢Facebook,這將是一個嚴重的隱私問題。您的訪問者可能已到達您的站點,並已登錄到FB,在這種情況下,您不必提示他們。你的iframe想法可能會在某種程度上起作用,但不是提示他們,用戶將不得不添加你的應用程序並通過Facebook應用程序訪問它,這幾乎是一回事。 – zombat 2009-09-02 17:35:22

+0

這是用戶已經登錄Facebook的情況下,我很好奇 - 如果他們是,我怎麼能得到他們的ID沒有提示他們(如果這是他們第一次訪問我的網站)? – Nicole 2009-09-03 01:05:08