在Stream上使用“ updateActivities”时如何指定提要?

时间:2019-02-11 02:10:26

标签: getstream-io

Stream API中的updateActivities方法令人困惑,因为文档似乎表明未在此操作期间指定供稿。这应该如何工作?

其他活动方法(addActivityremoveActivity)在feed对象上执行,这很有意义。但是文档显示updateActivities是客户端对象上的一种方法,无法指定包含活动的feed。

从文档中

var now = new Date();

activity = {
    "actor": "1",
    "verb":"like",
    "object": "3",
    "time": now.toISOString(),
    "foreign_id": "like:3",
    "popularity": 100
};

// first time the activity is added
user1.addActivity(activity);

// update the popularity value for the activity
activity.popularity = 10;

// send the update to the APIs
client.updateActivities([activity]);

我的期望(据我所知,这是唯一有意义的事情),因为updateActivities不是唯一的foreign_id所有提要。 (以前的假设是基于大量使用多个Feed的相同外部ID的经验。)

1 个答案:

答案 0 :(得分:0)

将活动添加到提要时,Stream会为其生成一个唯一的ID,并使用该ID将活动传播到直接提要,如果有的话,还传播到所有关注者提要。实际上,提要中仅存储对活动的引用。

Stream还保证ID值对于相同的timeforeign_id是一致的。这意味着,如果您添加一个具有相同时间和foreign_id的活动,则该活动将始终具有相同的ID。

这使您可以控制活动的唯一性并更新所有活动的发生,而无需跟踪所有可以复制的feed(to目标和关注关系会使这项任务变得非常复杂!)。