如何在Node.js中以编程方式获取GCP承载/访问令牌?

uurity8g  于 12个月前  发布在  Node.js
关注(0)|答案(1)|浏览(107)

我正在使用Google Cloud的Vertex API来制作AI应用程序。我目前正在使用这个API为图像获取标题/描述的功能。我使用下面的函数来做同样的事情:

const fetchCaptionForImage = async (image) => {
    const accessToken = "..."
    const uri = "..."
    const body = {...}

    try {
        const response = await axios.post(uri, body, {
            headers: {
                'Authorization': `Bearer ${accessToken}`,
            }
        })
        console.log(response.data.predictions);
    } catch (error) {
        console.log(error.message);
    }
}

从文档中,我只能看到要生成accessToken,必须使用gcloud命令:gcloud auth print-access-token。我可以使用命令行的accessToken获取结果。
但是由于accessToken过期了,我想以编程方式生成access-token。我看到一些帖子解释了这一点,但它们大多是过时的或python的。
我想在Node.js中以编程方式获取access-token。如何做到这一点?谢谢

9gm1akwq

9gm1akwq1#

根据评论中的URL,您正在使用VertexAI服务。在你的代码中,你可以像NodeJS那样获得一个访问令牌

const {GoogleAuth} = require('google-auth-library');
...
...

    const auth = new GoogleAuth({
        scopes: 'https://www.googleapis.com/auth/cloud-platform'
    });
    const token = await auth.getAccessToken();
    console.log(token);

相关问题