GET请求到People API时,请求具有无效的身份验证凭证错误

时间:2020-08-10 00:22:48

标签: actions-on-google gcloud service-accounts dialogflow-es-fulfillment google-people

我正在Google上进行操作,以查看登录用户的详细联系信息。我已经获取了身份提供者的访问令牌。 使用此访问令牌发出GET请求时,出现错误

您的应用程序已使用people.googleapis.com不支持的来自Google Cloud SDK或Google Cloud Shell的最终用户凭据进行了身份验证。我们建议在gcloud中配置billing / quota_project设置,或通过auth / impersonate_service_account设置使用服务帐户。有关服务帐户以及如何在应用程序中使用它们的更多信息,请参阅https://cloud.google.com/docs/authentication/

因此,我启用/创建了一个激活的服务帐户。但是现在当我尝试向GET请求 https://people.googleapis.com/v1/people/me?access_token={{token}} 我收到以下错误:

{
  "error": {
    "code": 401,
    "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
    "status": "UNAUTHENTICATED"
  }
}

代码:


app.intent("sendgc_input",(conv)=>{
    name = `${conv.input.raw}`,
    console.log(name);

    const options = {
        method : 'GET',
        url : 'https://people.googleapis.com/v1/people/me?access_token=ya29.a0AfH6SMCXFju5HUe4qHSsKiVJ1tRkzJ3prL7Fe8qqGKHuJCSWYvXaekdEBRTjAZsc1-xbFrlP6W7r7VLtL2KLm3C6UogsX-6peHtv2cPRhvcFV9AB1utoEQcoX2v08eQpx_fNplogeqdzRJyhP6egJTVAfkboEmgUzOQ',
        json : true
    }
    var data=[];
    return rp(options)
            .then(function(parseBody){
                var x = parseBody.email;
                console.log(x)
                data.push(parseBody.email);
                var str = 'A gift card will be sent to' + name + 'on email' + data[0];
                console.log(data);
                return conv.ask(str);
            })
            .catch(err=>{
                console.log(err);
                conv.ask('error');
            })
});

我还使用当前项目对我的帐户进行了 gcloud auth应用程序默认登录

我不明白怎么了。

0 个答案:

没有答案