如何为两个单独的组提供两个时间轴供稿并单独查询

时间:2018-03-06 15:28:40

标签: getstream-io

我正在努力了解Stream是如何运作的,但我只是不明白......我想要创建两个Feed,它们应该彼此分开。

通过下面的示例,我认为我首先将活动添加为Eric,我有一个活动只针对Eric的Feed,一个转到 cpaentries Feed,另一个转到 productcafe Feed。

const ericToken = client.feed('timeline', 'eric').token
var ericFeed = client.feed('timeline', 'eric', ericToken);

// Add the activity to the feed
ericFeed.addActivity({
    actor: 'eric',
    tweet: 'Hello world',
    verb: 'tweet',
    object: 1
});


ericFeed.addActivity({
    actor: 'eric',
    tweet: 'Hello world, CPA EntriesNew',
    verb: 'tweet',
    object: 1,
    to: ['timeline:cpaentries']
});

ericFeed.addActivity({
    actor: 'eric',
    tweet: 'Hello world, Product CafeNew',
    verb: 'tweet',
    object: 1,
    to: ['timeline:productcafe']
});

现在我正在尝试仅检索包含 cpaentries 活动的时间轴。将此视为每个用户在打开应用时应该看到的主要Feed。我只是对client.feedto字段感到困惑,我想也是如此。

const cpaToken = client.feed('timeline', 'cpaentries').token
var cpaFeed = client.feed('timeline', 'cpaentries', cpaToken);


cpaFeed.get({limit:5}).then(function(body) {
    console.log(body);
    /* on success */
    }).catch(function(reason) {
    console.log(reason);
    /* on failure, reason.error contains an explanation */
});

此代码段基本上只显示所有帖子,而不仅仅是 cpaentries 帖子,正如我希望的那样。

这是我的结果的主体:

{ results:
   [ { actor: 'eric',
       foreign_id: '',
       id: 'd2435d01-21bb-11e8-81f8-128899f22c76',
       object: '1',
       origin: null,
       target: '',
       time: '2018-03-07T03:58:40.503118',
       tweet: 'Hello world, CPA EntriesNew',
       verb: 'tweet' },
     { actor: 'eric',
       foreign_id: '',
       id: '83eb9b0e-21bb-11e8-a2ca-0a51ae8e7f7a',
       object: '1',
       origin: null,
       target: '',
       time: '2018-03-07T03:56:29.065704',
       tweet: 'Hello world, CPA EntriesNew',
       verb: 'tweet' },
     { actor: 'eric',
       foreign_id: '',
       id: 'fc9b804e-2154-11e8-b02a-128899f22c76',
       object: '1',
       origin: null,
       target: '',
       time: '2018-03-06T15:42:33.381897',
       tweet: 'Hello halli hallo world, CPA Entries',
       verb: 'tweet' },
     { actor: 'eric',
       foreign_id: '',
       id: '3602f521-2152-11e8-853b-0a51ae8e7f7a',
       object: '1',
       origin: null,
       target: '',
       time: '2018-03-06T15:22:41.199850',
       tweet: 'Hello world, CPA EntriesNew',
       verb: 'tweet' },
     { actor: 'eric',
       foreign_id: '',
       id: '281b133f-2152-11e8-8533-0a51ae8e7f7a',
       object: '1',
       origin: null,
       target: '',
       time: '2018-03-06T15:22:17.869808',
       tweet: 'Hello world, CPA EntriesNew',
       verb: 'tweet' } ],
}

1 个答案:

答案 0 :(得分:0)

  

通过下面的示例,我认为我首先将活动添加为Eric,我有一项活动仅适用于Eric的Feed,一项转到cpaentries Feed,另一项转到productcafe进料。

这几乎是正确的。在您的示例中,所有活动将进入Eric的Feed。第二项活动将转入Eric的Feed,并被复制到cpaentries Feed。第三项活动将转入Eric的Feed,并被复制到productcafe Feed。

您可以将to参数视为要复制活动的Feed集合。

要获得您认为会发生的行为,第二个和第三个活动将分别直接添加到cpaentriesproductcafe Feed,而不会添加to个参数。 E.g:

const cpaentriesFeed = client.feed('timeline', 'cpaentries', cpaentriesToken);

cpaentriesFeed.addActivity({
    actor: 'eric',
    tweet: 'Hello world, CPA EntriesNew',
    verb: 'tweet',
    object: 1
});

const productcafeFeed = client.feed('timeline', 'productcafe', productcafeToken);

productcafeFeed.addActivity({
    actor: 'eric',
    tweet: 'Hello world, Product CafeNew',
    verb: 'tweet',
    object: 1
});