Stream API中的updateActivities
方法令人困惑,因为文档似乎表明未在此操作期间指定供稿。这应该如何工作?
其他活动方法(addActivity
,removeActivity
)在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的经验。)
答案 0 :(得分:0)
将活动添加到提要时,Stream会为其生成一个唯一的ID,并使用该ID将活动传播到直接提要,如果有的话,还传播到所有关注者提要。实际上,提要中仅存储对活动的引用。
Stream还保证ID值对于相同的time
和foreign_id
是一致的。这意味着,如果您添加一个具有相同时间和foreign_id的活动,则该活动将始终具有相同的ID。
这使您可以控制活动的唯一性并更新所有活动的发生,而无需跟踪所有可以复制的feed(to
目标和关注关系会使这项任务变得非常复杂!)。