向 Cloud Vision API 进行身份验证

使用服务账号

首选方法是使用服务账号进行身份验证。要使用服务账号向 Vision API 进行身份验证,请执行以下操作:

  1. 按照相关说明创建服务账号。选择 JSON 作为密钥类型。

创建完毕后,您的服务账号密钥将下载到浏览器的默认位置。

接下来,决定是以不记名令牌的形式进行服务账号身份验证,还是使用应用默认凭据

不记名令牌

如果您直接调用 Vision API(例如使用 cURL 发出 HTTP 请求),您将在 Authorization 标头中以不记名令牌形式传递身份验证。要使用您的服务账号获取不记名令牌,请执行以下操作:

  1. 安装 gcloud CLI
  2. 对您的服务账号进行身份验证,同时将以下 KEY_FILE 替换为指向服务账号密钥文件的路径:

    gcloud auth activate-service-account --key-file KEY_FILE
    
  3. 使用您的服务账号获取授权令牌:

    gcloud auth print-access-token
    

    该命令会返回一个访问令牌值。

  4. 调用 API 时,请使用您的服务账号在 Authorization 标头中获取授权令牌:

    curl -s -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json" \
    "https://vision.googleapis.com/v1/images:annotate" -d @request.json
    

应用默认凭据

如果您使用客户端库来调用 Vision API,请使用应用默认凭据 (ADC)。 使用 ADC 的服务会在 GOOGLE_APPLICATION_CREDENTIALS 环境变量中查找凭据。除非您希望 ADC 使用其他凭据(如用户凭据),否则我们建议您将此环境变量设置为指向您的服务账号密钥文件。

export GOOGLE_APPLICATION_CREDENTIALS=PATH_TO_KEY_FILE

PATH_TO_KEY_FILE 替换为指向您的 JSON 服务账号文件的路径。 GOOGLE_APPLICATION_CREDENTIALS 应该按原样写出(在上述示例中,它不是占位符)。

使用 API 密钥

您可以使用 Google Cloud 控制台 API 密钥向 Vision API 进行身份验证。

为此,请执行以下操作:

  1. 按照说明为您的 Google Cloud 控制台项目创建 API 密钥

  2. 在发出任何 Vision API 请求时,请将您的密钥作为 key 参数的值传递。例如:

    POST https://vision.googleapis.com/v1/images:annotate?key=YOUR_API_KEY
    

请务必阅读安全使用 API 密钥的最佳做法,以防他人在未经授权的情况下使用您的 API 密钥。