服务器到服务器的身份验证失败-Firebase-dialogflow-Google上的操作-用户实体v2

时间:2018-12-13 10:35:50

标签: firebase google-api dialogflow actions-on-google google-oauth2

这是我用来获取访问令牌以创建会话实体的代码,如下所述:https://dialogflow.com/docs/reference/api-v2/rest/v2/projects.agent.sessions.entityTypes 以前该代码可以正常工作,但是突然停止工作,现在它返回的访问令牌在firebase函数中未定义,这是不起作用的代码:

export const rough = functions.https.onRequest((request, response) => {

var { google } = require('googleapis');

const cred = {
    serviceAccountEmail: "dialogflow-abc@abc-abc.iam.gserviceaccount.com",
    privateKey: "-----BEGIN PRIVATE KEY-----abcdkey---END PRIVATE KEY-----\n"
}

// getting server to server OAuth token
const serviceAccountAuth = new google.auth.JWT({ // key is private key, extracted from service-account json file
    email: cred.serviceAccountEmail,
    key: cred.privateKey,
    scopes: ['https://www.googleapis.com/auth/cloud-platform']
})

console.log(serviceAccountAuth);
const _tokenData = serviceAccountAuth.authorize().then(tokenData => {
    console.log("tokenData: ", tokenData)
}) })

代码是正确的,因为该代码在我的机器上仍然可以正常工作,请看一下:

我机器中的代码:(工作中)

enter image description here enter image description here

firebase函数中的相同代码:(不工作)

enter image description here enter image description here

如果我在firebase函数模拟器中运行相同的函数,则效果很好

本地仿真器(工作)

enter image description here

1 个答案:

答案 0 :(得分:0)

我的代码像以前一样自动开始工作 这是由于Google发生的事件

  

调查Firebase的Cloud Functions问题

     

事件始于2018年12月15日04:00,始于2018年12月15日13:15(全部   时间是美国/太平洋)。   https://status.firebase.google.com/incident/Functions/18044

现在事件已回滚,这就是我认为我的代码再次开始正常工作的原因

当我在其他几个地方发布此问题时,包括他们的闲置频道以及firebase和google api的不同github存储库,我意识到我不是唯一面临此问题的人,但是有更多人在不同地方报告了类似问题功能和存储等服务,它们的代码运行良好,但是现在抛出错误

enter image description here

enter image description here