Google Cloud vision API:“请求的身份验证范围不足。”

时间:2016-03-07 14:38:05

标签: python google-cloud-platform google-cloud-vision

您好我正在尝试使用谷歌的云视觉API,特别是这个例子:https://cloud.google.com/vision/docs/label-tutorial#label_tutorial_1

我遵循了本教程:https://cloud.google.com/vision/docs/getting-started#set_up_a_service_account用于设置服务帐户,但是当我运行代码时,我得到:

Legend l = mChart.getLegend();
l.setPosition(LegendPosition.RIGHT_OF_CHART);
l.setXEntrySpace(7);
l.setYEntrySpace(5);
setContentView(mChart);

有人可以帮忙吗?我无法弄清楚发生了什么,我的代码是1:1的教程。

3 个答案:

答案 0 :(得分:6)

您需要清除计算机中的~/.credentials/sheets.googleapis.com-python-quickstart.json。然后将您的范围定义为https://www.googleapis.com/auth/drive。再次运行您的代码,它应该要求您重新授权。然后运行你的代码。

答案 1 :(得分:3)

我得到了同样的错误。我做了以下事情:

sudo apt-get update & apt-get upgrade

pip install --upgrade google-api-python-client

然后通过...

初始化gcloud sdk
gcloud init 

瞧它开始工作了!

您还可以尝试从API管理器重新生成凭据

答案 2 :(得分:0)

您可能希望将google.cloud client library用于Vision API。

要使用正确的范围进行身份验证,您需要在云控制台中生成服务帐户,并从您的代码(或环境变量)指向该帐户。有关详细信息,请参阅the Vision auth section

从云端控制台中的credentials manager获取服务帐户。然后指向您环境中的项目和JSON凭证文件:

$ export GOOGLE_CLOUD_PROJECT="your-project-id-here"
$ export GOOGLE_APPLICATION_CREDENTIALS="/path/to/keyfile.json"

您尝试运行的演示(标记图像)变为:

>>> from google.cloud import vision
>>> client = vision.Client()
>>> image = client.image(source_uri='gs://my-storage-bucket/image.jpg')
>>> labels = image.detect_labels(limit=3)
>>> labels[0].description
'automobile'
>>> labels[0].score
0.9863683

(取自docs的代码段)