Node.js 如何将api密钥传递给Google Cloud Vision NodeJS api

Node.js 如何将api密钥传递给Google Cloud Vision NodeJS api,node.js,google-cloud-vision,Node.js,Google Cloud Vision,const vision=require(“@google cloud/vision”) 我可以找到的所有示例要么使用从环境变量获得的凭据,要么使用JSON凭据文件,但我想使用API键调用API。如何做到这一点?如果您使用的是客户端库,则必须使用JSON文件或环境变量中的凭据进行身份验证。如果要使用API密钥,则必须直接向API发送POST请求(阅读有关验证Vision API的更多信息)。示例cURL命令如下所示: curl -s -H 'Content-Type: application/j

const vision=require(“@google cloud/vision”)


我可以找到的所有示例要么使用从环境变量获得的凭据,要么使用JSON凭据文件,但我想使用API键调用API。如何做到这一点?

如果您使用的是客户端库,则必须使用JSON文件或环境变量中的凭据进行身份验证。如果要使用API密钥,则必须直接向API发送POST请求(阅读有关验证Vision API的更多信息)。示例cURL命令如下所示:

curl -s -H 'Content-Type: application/json'   'https://vision.googleapis.com/v1/images:annotate?key=XXXXXXX_MY_API_KEYXXXXXXXXXXXXXXX'   -d ' {
  "requests": [
    {
      "image": {
        "source": {
          "imageUri": "gs://bucketname/objectname.jpg"
        }
      },
      "features": [
        {
          "type": "LABEL_DETECTION",
          "maxResults": 1
        }
      ]
    }
  ]
} '

我也有同样的问题要解决。经过一番挖掘,我得到了一个在单发枪声中工作的咆哮解决方案

确保已安装所需的节点模块:

npm install @google-cloud/vision



const vision = require('@google-cloud/vision');
const {GoogleAuth, grpc} = require('google-gax');

const apiKey = '**********';

function getApiKeyCredentials() {
  const sslCreds = grpc.credentials.createSsl();
  const googleAuth = new GoogleAuth();
  const authClient = googleAuth.fromAPIKey(apiKey);
  const credentials = grpc.credentials.combineChannelCredentials(
    sslCreds,
    grpc.credentials.createFromGoogleCredential(authClient)
  );
  return credentials;
}


async function main(fileName) {
  const sslCreds = getApiKeyCredentials();
  const client = new vision.ImageAnnotatorClient({sslCreds});
  const [result] = await client.faceDetection(fileName); 
  const faces = result.faceAnnotations;

  //your custom code 

}