我的要求是清除通知Feed上的所有活动。
基于this stackoverflow question我了解有一个未记录的REST API来删除Feed,而仪表板截断Feed功能使用它。 我尝试使用与仪表板相同的参数来复制调用:
DELETE /api/v1.0/feed/notification/f8fa1d12-594a-4b2b-ac58-23c912d1335a/?api_key=...&location=unspecified
Host: api.getstream.io
Authorization: notificationf8fa1d12-xxxx-xxxx-xxxx-23c912d1335a writetoken
stream-auth-type: simple
X-Stream-Client: stream-javascript-client-browser-unknown
Cache-Control: no-cache
尝试使用相同但收到此错误消息:
{
"code": null,
"detail": "url signature missing or invalid",
"duration": "6ms",
"exception": "AuthenticationFailed",
"status_code": 403
}
这是使用此API的正确方法吗? 我在Java代码中使用它,并且认为Java客户端没有内置此功能。
答案 0 :(得分:1)
有两种方法可以做到这一点。您可以从仪表板上的资源管理器手动执行此操作。搜索Feed,选择一个活动,然后按截断进纸按钮。如果手动执行此操作就足够了,这是最简单的方法。
您也可以使用删除API端点以编程方式执行此操作。此端点不是内置于大多数客户端,包括Java客户端。您使用的URL和HTTP谓词确实有效。
从我的标题和响应中可以看出,您似乎遇到了提供正确签名的问题。正确执行此操作的最简单方法是使用您用于生成它们的库中的内置方法。我不是Java库的专家,但似乎这些方法都在StreamRepoUtils
类中。