【问题标题】:"Not enough rights to add an object" error while implementing Algolia实施 Algolia 时出现“没有足够的权限来添加对象”错误
【发布时间】:2021-06-21 23:09:48
【问题描述】:

我正在尝试为 Algolia 中的联系人编制索引。
这是我的代码:

StreamReader re = File.OpenText("contacts.json");
JsonTextReader reader = new JsonTextReader(re);`
JArray batch = JArray.Load(reader);
// Add objects 
Index index = client.InitIndex("contacts");

index.AddObjects(batch);

最后一行出现错误:

Not enough rights to add an object

【问题讨论】:

  • 你应该先阅读[How to ask [on StackOverflow]](stackoverflow.com/help/how-to-ask)。
  • 关于您的具体错误,您使用的 API 密钥似乎不允许您索引对象。
  • @Jerska 我肯定会提高我的“提问技巧”。显然我使用的密钥只是用于搜索。我使用了管理员密钥,它工作正常。非常感谢。
  • 我只是将其发布为答案,以便我们可以关闭问题。

标签: algolia


【解决方案1】:

您使用的 API 密钥似乎在 Algolia 中没有“添加记录”ACL。

当您想使用对索引具有写入权限的 API 密钥时,您可能使用了搜索 API 密钥,例如您的 Admin API 密钥。

【讨论】:

  • Admin API Key 用于“添加/更新”索引操作,所以使用它。
  • 使用写入 ACL(addObjectdeleteObjectsettingseditSettings + 读取的 searchbrowse + 任何您认为合适的)创建自定义 API 密钥限制索引子集是一个好主意,以防您意外泄漏密钥,这样它就不会影响您使用 Algolia 的其他应用程序(如果有)。
【解决方案2】:

您可以创建一个新的 API 密钥并赋予它特定的权限,以便在 ACL 输入字段中搜索和添加对象。选择“所有 API 密钥”时,您可以在仪表板中创建新的 API 密钥。

Algolia 建议仅将您的管理员密钥用于后端搜索,并为前端搜索创建一个新密钥。

这是来自 Algolia https://www.algolia.com/doc/guides/security/api-keys/#rights-and-restrictions 的一些支持文档

【讨论】:

    【解决方案3】:

    我收到此错误是因为我在使用 Algolia 扩展程序时使用了 Firebase 中的搜索 API。这很奇怪,因为上面写着“不要使用 Admin API 密钥”,但你猜怎么着,Admin 密钥是有效的......

    【讨论】:

    • 使用管理 API 密钥不是一个好的解决方案。相反,您可以创建一个新的 API 密钥并设置访问权限。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-03
    相关资源
    最近更新 更多