使用 REST 删除提要 API

Deleting a feed using REST API

我的要求是清除通知源上的所有活动。

基于 我了解到有一个未记录的 REST API 用于删除提要,仪表板截断提要功能使用它。 我尝试使用与仪表板相同的参数复制调用:

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 客户端没有内置此功能。

有两种方法可以做到这一点。您可以从仪表板上的资源管理器手动执行此操作。搜索提要 select 和 activity,然后按截断提要按钮。如果手动执行此操作就足够了,这是执行此操作的最简单方法。

也可以像您发现的那样使用 delete API 端点以编程方式执行此操作。大多数客户端都没有内置此端点,包括 Java 客户端。您使用的 URL 和 HTTP 动词应该确实有效。

从您的 headers 和回复中我可以看出,您似乎在提供正确的签名方面遇到了问题。正确执行此操作的最简单方法是使用您正在使用的库中的内置方法来生成它们。我不是 Java 库的专家,但这些方法似乎在 StreamRepoUtils class.