2011-09-24 49 views
1

我是一個PHP開發人員,但對這個Facebook的東西是全新的,並且變得混亂。整個應用程序vs頁面與粉絲頁面術語使我瘋狂。請幫忙!Facebook的發展 - 最好的方法簡單的問題

我的客戶的要求:

1) Display Like button on a single web page 

2) When Like button is clicked, content on the page is unlocked and displayed (PHP) 

3) Future visits to the page detects that visitor already likes the page, and content remains unlocked (PHP) 

4) All updates to web page profile on FB will show on Likers' news feed 

我的理解是,這樣做的最徹底的方法(3)以上是使用PHP SDK。但要做到這一點,我需要創建一個應用程序(獲取應用程序ID)。所以我創建了一個App。我'喜歡'從我的FB配置文件的應用程序。我的應用更新發布到我的新聞源。到現在爲止還挺好。

但是,當我嘗試並實現PHP SDK時,它只有在我首先授權應用程序到我的帳戶時纔有效。有沒有一種方法可以避免這種授權步驟只是爲了簡單的「贊」(我問,因爲我不需要在FB內部的應用程序時授權任何東西)?如果這個授權是不可避免的,有沒有其他的應用程序可以讓我達到上述要求?理想情況下,我想只使用「頁面」來做到這一點,而不是應用程序,但我相信我無法實現(2)和(3)頁面,正確(記住所有需要的服務器端,所以沒有JavaScript顯示和隱藏層等)?

我將不勝感激任何指導。

謝謝。

回答

0

所以我假設我們在這裏討論的是一個Facebook選項卡 - 520個像素寬的應用程序可以進入粉絲頁面?

如果沒有,您將無法在沒有權限的情況下發生這種情況。聽起來這就是你正在談論的,但是。

這裏是可口可樂的粉絲專頁上的Facebook標籤的例子: enter image description here

在選項卡中,PHP SDK會告訴你,如果用戶的頁面(不是應用程序的粉絲中,這一頁)。您需要閱讀已簽名的請求 - 其中會有一個名爲Page的參數,告訴您用戶是否已經是粉絲(請參閱https://developers.facebook.com/docs/authentication/signed_request/)。你無需授權就可以得到這個。

我通常閱讀所有這些信息並存儲用戶是否是布爾變量中的粉絲。再後來在我的網頁,我會做這樣的事情:

<?php if ($isFan):?> 
    Content for fans here 
<?php else:?> 
    Content for non-fans here 
<?php endif;?> 

請記住,它只是告訴你,如果用戶是該頁面的粉絲 - 如果你設置你的應用程序測試頁上,例如,它會告訴你用戶是否是該測試頁面的粉絲,而不是該用戶是否是應用程序的粉絲。

0

爲了使用PHP SDK閱讀Facebook用戶喜歡的內容,您需要具有user_likes權限。然而,你可以通過在你的頁面上渲染一個像按鈕一樣的東西,並檢測按鈕的顏色,這意味着用戶喜歡這個頁面。由於考慮到類似按鈕呈現爲iframe的跨域問題,這可能是有問題的。

祝你好運!

0

對於某些事情,你需要一個應用程序。就像限制對內容的訪問一樣,如果用戶有「喜歡」的東西。你需要自定義代碼來做到這一點。你不需要一個基本的「喜歡」按鈕的應用程序,但你真的無法得到任何數據的喜歡。您可以將應用鏈接到網站,以便您可以報告內容和推介。如果您轉到http://www.facebook.com/insights/,則可以將該應用與網站鏈接,以便將見解/報告結合起來。只需點擊「Insights for your Website」按鈕即可。它確實需要驗證。

這就是說,你的困惑是常態。應用程序,頁面和粉絲頁面幾乎是一回事。它們全都通過數字ID來引用。頁面和應用程序頁面之間存在細微的功能差異。如果已配置應用程序,則可以將該應用程序添加到任何頁面。但是,您無法將頁面添加到其他頁面。

您可以使用FQL查詢用戶是否是應用程序的粉絲,而不是您當前所在的頁面。

Facebook控制新聞Feed中顯示的內容。僅僅因爲您發佈到Feed中,並不意味着它會顯示。但是,如果您是網頁和/或應用的管理員,則帖子會始終顯示在您的Feed中。