在我的后端,我想使用Javascript API客户端刷新Algolia搜索索引(清除,更新,删除)。 https://www.algolia.com/doc/api-client/javascript/manage-indices/
我可以访问相应的索引和搜索工作。但是,listIndexes和所有类型的索引操作都不起作用。知道我忽略了什么(相对较新的Algolia API)?
<script src="https://cdn.jsdelivr.net/algoliasearch/3/algoliasearch.min.js"></script>
<script>
$( document ).ready(function() {
console.log( "ready!" );
var client = algoliasearch('XXXX', 'YYYY');
var index = client.initIndex('rd_showcase');
// index search works
index.search('image', function(err, content) {
console.log(content.hits);
console.log("search for image done");
});
index.search('image', function searchDone(err, content) {
console.log(err, content);
});
// error: 403 forbidden
/*
client.listIndexes(function(err, content) {
console.log(content);
});
*/
// error: 400 bad request
client.copyIndex('rd_showcase', 'rd_showcase_20170212', function(err, content) {
console.log(content);
});
});
</script>
答案 0 :(得分:1)
从您在此处发布的代码中我可以看到您希望从前端JS代码执行此操作 - 任何有权访问网站的人都可以阅读代码。
出于安全原因,禁用数据操作方法以从前端代码使用。这些操作需要Admin API密钥才能进行数据操作,向有权访问该网站的任何人显示您的Admin API密钥是一个安全问题。
要执行clear
,listIndices
和其他数据敏感操作,您需要从后端/服务器端执行此操作。如果您想使用JavaScript,可以使用Node.js.如果您不关心语言,可以使用任何其他服务器端语言,如PHP,Ruby,Java,......