c# - 如何通过 HTTP 请求对 Google Cloud Vision 进行身份验证
问题描述
我正在尝试通过使用 c# 的 rest http 请求来使用 Google Cloud Vision。如此处所述,我尝试使用 api 密钥作为参数进行身份验证:
string uri = "https://vision.googleapis.com/v1/images:annotate?key=" + API_KEY;
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, uri);
[...]
response = await client.SendAsync(request);
但是,我总是得到一个 403 PERMISSION DENIED 代码:
Cloud Vision API 之前未在项目 XXXXX 中使用过或已禁用。通过访问 https://console.developers.google.com/apis/api/vision.googleapis.com/overview?project=XXXXXXX启用它, 然后重试。如果您最近启用了此 API,请等待几分钟让该操作传播到我们的系统并重试。
由于该身份验证方法似乎存在一些问题,尤其是在云视觉方面,我尝试通过我创建的服务帐户的访问令牌进行身份验证。我为服务帐户授予了完全访问权限,以确保服务帐户的权限没有问题:
string uri = "https://vision.googleapis.com/v1/images:annotate";
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, uri);
request.Headers.Add("Authorization", "Bearer " + ACCESS_TOKEN);
response = await client.SendAsync(request);
仍然,同样的错误信息。卷曲也是如此:
curl -k -X POST -H "Content-Type:application/json"
-d "@{REQUEST_AS_JSON_OR_PATH_TO_JSON-FILE}"
https://vision.googleapis.com/v1/images:annotate?key={API_KEY}
我错过了什么?
解决方案
事实证明,激活 API 密钥是不够的(即使它没有任何限制),但需要主动转到Google 控制台菜单 -> API 和服务 -> 库 -> 搜索“Cloud Vision” -> klick在 Cloud vision API 上并激活它。这需要几分钟。此状态不会显示在您的仪表板中。
然后,您可以简单地使用 api 密钥作为 URL 参数进行身份验证。
推荐阅读
- python-3.8 - 检查数字是否互质
- kubernetes - 如何将 Kubernetes 目录挂载为其他目录?
- python - 尝试将文件作为 Robot Framework 中的命令行选项传递
- eucalyptus - Euca 5.0 Ansible 控制台任务失败
- visual-studio-2019 - Ctrl+Y(重做)在 Visual Studio 2019 中不起作用
- c# - 在 Linux 中保存文件时出现 System.IO.DirectoryNotFoundException
- angular - 如何强制斯巴达克斯加载模板
- python - 如何使用 Pool 在 Python 中优化多处理
- c - 可变参数函数 64 位 Windows
- fiware - FIWARE的订阅不通知