我正在尝试使用c#通过rest http请求使用Google Cloud Vision。如上所述,我尝试使用here密钥作为参数进行身份验证:
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权限被拒绝的代码:
云视图接口之前未在XXXXX项目中使用或已关闭。通过访问https://console.developers.google.com/apis/api/vision.googleapis.com/overview?project=XXXXXXX启用它,然后重试。如果您最近启用了此API,请等待几分钟,让操作传播到我们的系统,然后重试。
当然我检查过了,API是激活的,启用的,并且没有API限制:
由于似乎存在使用身份验证方法some problems,尤其是使用cloud vision,因此我尝试通过我创建的服务帐户的访问令牌进行身份验证。我为服务帐户提供了完全访问权限,只是为了确保服务帐户的权限没有问题:
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也是如此:
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}
我错过了什么?
发布于 2018-06-03 04:48:17
事实证明,激活一个API是不够的(即使它没有任何限制),但需要主动转到云菜单和API和服务->库,在Cloud vision API上搜索“Google console Vision”-> klick并激活它。这需要几分钟。此操作的状态不会显示在您的控制面板中。
然后,您可以简单地使用api密钥作为URL参数进行身份验证。
https://stackoverflow.com/questions/50657314
复制相似问题