2016-08-12 4 views
4

Facebookのシンプルな機能は、あなたの友人からの投稿だけでなく、あなたの友人が共有した投稿を表示することです。共有の投稿の場合は、 "Kelly and 4 others"というタイトルの共有XYZ投稿です。さらに、あなたの友人のいくつかが投稿を共有した場合、Facebookはそれらを集約して投稿を1回だけ表示しますが、それは数回表示されません。 Facebookはフラットなフィードと集計フィードを同じタイムライン表示で表示しているようだ。集計型とフラット型のニュースフィードを作成するにはどうすればよいですか?

フィードの集計とフラットフィードの種類をユーザーのタイムライン(フラットフィード)に表示する方法をお勧めします。

ユーザーAがユーザーBを以下のたびに、私は、ユーザーBのを追跡するために、ユーザAのタイムラインフィードを更新するGETSTREAMを呼び出す(フラット)

ユーザーのフィード(フラット)

タイムラインフィード:私は次のセットアップフィードを持っていますユーザーフィード。

私は上記に加えて、やってみたいことはユーザーに示すための例のタイムラインとしてこれで次から

フラット・ポスト1(以下、ユーザAから)

フラット・ポスト2(ユーザーB)

集約ポスト1(あなたがフォローしている4人がポストXを共有)

フラットポスト3(以下、ユーザAから)

フラットポスト4(から次のユーザC)

集約後の2(3人、あなたが好きポストY従っている)

それは今、この権利を行う方法のように思えるが、私は活動をフェッチする必要があるだろうということですgetstreamからのタイムラインフィードでは、集約フィードを取得し、何とかそれらをバックエンドに混在させますか?

+0

あなたの質問は本当に明確ではありません、あなたは精巧にできますか? –

答えて

5

これを実現するには、1つの集約フィードを使用し、集約ルールを調整します。あなたのケースでは、それはあなたが必要なもののように思えるです:

  • グループ株式同じポストのため一緒に
  • グループが一緒に

同じ投稿を好き

  • 単一活動に凝集を投稿してください以下は動作するはずのようなルール(テストしていません):

    {% 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 %} 
    

    どのようにトンを簡単に説明彼の作品は期限です。集約ルールは、アクティビティのグループ化方法を決定するために使用されます。アクティビティをパラメータとして実行される関数としてそれらを見ることができます。実際には、集約ルールは文字列を出力するJinja2テンプレートに似ています。

    2つのアクティビティの出力が同じ場合、それらは同じ集約アクティビティに属します。

    例:アクティビティTom likes post "xyz"James likes post "xyz"は両方ともlikes-xyzを出力するため、一緒にグループ化されます。一方、アクティビティSam posts "xyz"post-xyzを出力し、xyzというポストが1つしかないと仮定すると、他のアクティビティではグループ化されません。

    フィードのサンプルデータを送信し、Streamのダッシュボードで利用できるプレビュー機能を使用して集約ルールを調整することをお勧めします。

  • +0

    これは素晴らしい応答でした。ありがとう、私はあなたが上で使用した例を読んで、プレビューを試してみましょう! – demig0d

    関連する問題