问题
Hi I'm trying to use google's cloud vision API, specifically this example: https://cloud.google.com/vision/docs/label-tutorial#label_tutorial_1
I followed this tutorial: https://cloud.google.com/vision/docs/getting-started#set_up_a_service_account for setting up a service account but when I run my code I get:
googleapiclient.errors.HttpError: <HttpError 403 when requesting https://vision.googleapis.com/$discovery/rest?version=v1 returned "Request had insufficient authentication scopes.">
Can anybody help? I can't figure out what's going on, my code is 1:1 with the tutorials.
回答1:
You need to clean ~/.credentials/sheets.googleapis.com-python-quickstart.json
from your computer. Then define your scope as https://www.googleapis.com/auth/drive
. Run your code again, it should ask you to re-authorize. Then run your code.
回答2:
I was getting the same error. I did the following:
sudo apt-get update & apt-get upgrade
pip install --upgrade google-api-python-client
then initialized the gcloud sdk via ...
gcloud init
and voila it started working!
You can also try re-generating the credentials from the API manager
回答3:
You might want to use the google.cloud client library for the Vision API instead.
To authenticate with the right scope, you'll need to generate a service account in the Cloud Console, and point to it from your code (or environment variables). See the Vision auth section for more info:
Get a service account from the credentials manager in the Cloud Console. Then point to your project and JSON credentials file in your environment:
$ export GOOGLE_CLOUD_PROJECT="your-project-id-here"
$ export GOOGLE_APPLICATION_CREDENTIALS="/path/to/keyfile.json"
The demo you were trying to run (labeling an image) becomes:
>>> 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
(Code snippet taken from the docs)
来源:https://stackoverflow.com/questions/35846446/google-cloud-vision-api-request-had-insufficient-authentication-scopes