2016-08-12 67 views
4

Facebook上的一個簡單功能是顯示朋友的帖子,但也顯示朋友分享的帖子。在共享帖子的情況下,它被稱爲「凱利和其他4人」共享XYZ帖子。此外,如果你的幾位朋友分享了這篇文章,Facebook將它們聚合在一起,只顯示一次帖子,它不會出現好幾次。 Facebook似乎在同一時間線視圖中顯示平面Feed和聚合Feed。如何構建一個聚合和平面類型的新聞提要?

我想要一個飼料的方式來顯示用戶的時間軸(平面飼料)中的聚合和平面飼料類型。我有以下提要設置:

時間表飼料(平)

用戶飼料(平)

每次用戶A如下用戶B,我叫getstream更新用戶A的時間表飼料追隨用戶B的用戶提要。

我想在除了上述做,這是作爲一個例子的時間線,以顯示給用戶:

平後1(從以下的用戶A)

平後2(從以下用戶B)

彙總後1(4人你下面分享了一條X)

平後3(從以下用戶A)

平4後(從以下的用戶C)

彙總後2(3人你喜歡跟隨後Y)

好像現在這樣做正確的方式是,我不得不獲取活動在來自getstream的時間軸feed中,然後也獲取一個聚合提要,並以某種方式在後端混合兩者?

+0

你的問題不是很清楚,你能否詳細說明一下? –

回答

5

您可以通過使用單個聚合訂閱源並調整聚合規則來實現此目的。在你的情況下,它看起來像你需要的是:

  • 集團的股份爲同一職位一起
  • 保留職位單活動
  • 集團喜歡對同一職位一起

聚集像下面的規則應該工作(未測試):

{% if verb.infinitive == 'like' %} 
    "likes"-{{ object }} 
{% elif verb.infinitive == 'share' %} 
    "share"-{{ object }} 
{% elif verb.infinitive == 'post' %} 
    "post"-{{ object }} 
{% else %} 
    {{ actor }}-{{ verb.infinitive }}-{{ time.strftime('%H') }} 
{% endif %} 

快速解釋如何t他的工作到期了。聚合規則用於確定活動如何組合在一起。您可以將它們看作以活動作爲參數執行的函數。實踐中聚合規則與輸出字符串的Jinja2模板相似。

如果兩個活動的輸出是相同的,那麼它們將屬於相同的聚合活動。

例如:活動Tom likes post "xyz"James likes post "xyz"都將輸出likes-xyz,因此將被組合在一起。另一方面,活動Sam posts "xyz"將輸出post-xyz,並假設只有一個名爲xyz的帖子,它將永遠不會與其他活動分組。

我的建議是將一些示例數據發送到提要,並使用Stream的儀表板中提供的預覽功能來調整聚合規則。

+0

哇,這是一個驚人的迴應。謝謝我會閱讀上面使用的示例並嘗試預覽! – demig0d