我正在尝试使用c#通过休息http请求使用Google Cloud Vision。如上所述here,我尝试使用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允许拒绝代码:
之前或之前,项目XXXXX中尚未使用Cloud Vision API 禁用。通过访问启用它 https://console.developers.google.com/apis/api/vision.googleapis.com/overview?project=XXXXXXX 然后重试。如果您最近启用了此API,请等待几分钟 传播到我们系统并重试的动作。
由于似乎存在some problems这种身份验证方法,特别是对于云视觉,我尝试通过我创建的服务帐户的访问令牌进行身份验证。我为服务帐户提供了完全访问权限,以确保服务帐户的权利没有问题:
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}
我错过了什么?
答案 0 :(得分:0)
原来这不足以激活API密钥(即使它没有任何限制),但需要主动转到Google console菜单 - > API和服务 - >图书馆 - >搜索" Cloud Vision" - >点击Cloud vision API并激活它。这需要几分钟。仪表板中未显示此状态。
然后,您只需使用api密钥作为URL参数进行身份验证。