2011-11-17 43 views
3

我知道,當人們通過edge.create方法從Facebook標籤中點擊「like」按鈕時,您可以捕獲事件,但是我想知道的是,如果有一種方法可以捕獲點擊頁面頂部的Facebook按鈕,目的是能夠找到我的粉絲頁面中的哪個標籤正在生成喜歡的內容。捕獲哪個標籤被喜歡

當頁面重新加載時,我會知道頁面是喜歡的,但我不知道是否是從一個標籤或同一頁上的另一個標籤生成的。

回答

3

我能想到的是足夠準確的唯一的解決辦法是:

與第一個應用程序請求啓動在服務器端的會話。 請記住signed_request和發佈時的時間戳。

在您的標籤應用中嵌入JavaScript間隔,每隔幾秒向您的服務器發起一次AJAX請求。我認爲你已經有了2到5秒的時間。 AJAX請求僅刷新會話中的時間戳。

如果用戶在頁面頂部點擊,現在整個Facebook頁面都會重新加載 - 您的應用程序也會如此,並且您將得到一個新的已被設置爲1的已經被設置爲1的已簽名請求。 查看您的會話>之前的狀態爲0?是?是最大時間戳。 6-10秒老?是?那麼,最有可能的是,用戶在選項卡上喜歡該頁面。

我討厭AJAX間隔污染網絡(和一個大網站上有很多用戶這會壓力你的服務器)的解決方案,但我想不出任何其他解決方案,因爲沒有其他的方法來保持跟蹤用戶是否仍在查看您的標籤。如果間隔太高,用戶將能夠導航到牆或信息部分,並喜歡那裏的頁面。如果他在此之後直接返回到您的選項卡,您將無法跟蹤他是否完全離開選項卡...

另一種解決方案是偵聽body.unload事件並激發AJAX請求以服務器告訴你用戶已經離開了標籤頁,但是有可能事件在某些瀏覽器上永遠不會被觸發,或者AJAX請求的速度不夠快,無法在標籤頁卸載之前處理。另一方面,這種解決方案可以減少用戶網絡和服務器性能的資源。

這只是理論上的解決方案,必須先進行測試!

0

我認爲這可能是這樣來完成:

  1. 當頁面或左側頂部的按鈕一樣被點擊,Facebook的刷新當前顯示的選項卡。
  2. 如果您從已簽名的請求中記錄類似狀態,並且選項卡從非喜歡轉換爲喜歡,您可以將其計爲轉換,則可以捕獲此刷新。

這應該工作,從來沒有使用它,它是更好的沒什麼。您可能需要對用戶IP地址添加限制,以防止不同/類似事件增加計數器。

祝你好運,如果你找到更好的解決方案,請在這裏發帖,這可能很有趣。

+0

是的,我想過使用的方法是這樣的,但如果有人喜歡一個選項卡,然後就回來給我的標籤之後,(或者從牆上爲例),因爲它會出現在同一個方式,它不會工作。我認爲使用時間戳機制,但它似乎搖搖晃晃在生產中可靠地使用=/ –

+0

你有沒有想過使用谷歌分析的?我認爲誤差很小,而且很容易實現。如果頁面上喜歡一些標籤使用_setCustomVar設置訪客級別變種,幷包裹在_getVisitorCustomVar如果塊(設置了var如果它不存在,做什麼,如果它)。您可以設置變量值是標籤應用程序ID或應用程序的名稱,僅此而已,3-4行代碼。 – DannyKK