googlecloudvisionapi:“请求没有足够的身份验证作用域。”

2024-04-29 10:19:29 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我正在尝试使用google的云视觉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来设置服务帐户,但是当我运行代码时,我得到:

googleapiclient.errors.HttpError: <HttpError 403 when requesting https://vision.googleapis.com/$discovery/rest?version=v1 returned "Request had insufficient authentication scopes.">

有人能帮忙吗?我搞不清是怎么回事,我的代码是教程的1:1。


Tags: 代码httpscomapiclouddocsgoogle教程
3条回答

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

您可能希望改用Vision API的^{} client library

要使用正确的作用域进行身份验证,您需要在云控制台中生成一个服务帐户,并从代码(或环境变量)指向它。有关详细信息,请参见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

我也犯了同样的错误。我做了以下工作:

sudo apt-get update & apt-get upgrade

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

然后通过。。。

gcloud init 

瞧,它开始工作了!

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

相关问题 更多 >