Error authenticating with JWT and googleapis (error:0906D06C:PEM routines:PEM_read_bio:no start line)
Error authenticating with JWT and googleapis (error:0906D06C:PEM routines:PEM_read_bio:no start line)
我正在尝试从我的节点服务器(运行 作为 Firebase 云功能)连接到 Google Analytics Reporting API v4。我想按照这个例子使用 JWT 进行身份验证:http://nali.org/google-analytics-v4-api-node-js-starter-example/
但是我收到这个错误:
Error: error:0906D06C:PEM routines:PEM_read_bio:no start line
at Error (native)
at Sign.sign (crypto.js:307:26)
at Object.sign (/user_code/node_modules/googleapis/node_modules/jwa/index.js:76:45)
at Object.jwsSign [as sign] (/user_code/node_modules/googleapis/node_modules/jws/lib/sign-stream.js:32:24)
它似乎在尝试使用 PEM 文件,但我只想使用电子邮件和私钥。这不可能吗?我举的例子link有误导吗?
这是我的代码:
const email = functions.config().ga.email;
const privateKey = functions.config().ga.privatekey;
const scope = ['https://www.googleapis.com/auth/analytics.readonly'];
const token = new googleapis.google.auth.JWT(email, null, privateKey, scope, null);
token.authorize( (error, tokens) => {
if (error) {
console.error('Error connecting to GA:', error);
} else {
console.log('Authorized!', tokens);
}
})
感谢您的帮助!
菜鸟错误:我没有转义 privateKey 字符串中的 \n
。 firebase functions:config:set
正在将 \n
转换为 \n
固定代码如下所示:
const email = functions.config().ga.email;
const privateKey = _.replace(functions.config().ga.privatekey, /\n/g, '\n');
const scope = ['https://www.googleapis.com/auth/analytics.readonly'];
const jsonWebToken = new googleapis.google.auth.JWT(email, null, privateKey, scope, null);
jsonWebToken.authorize( (error, tokens) => {
if (error) {
console.error('Error connecting to GA:', error);
} else {
console.log('Authorized!', tokens);
}
});
我的实际问题是使用以下建议解决的:Escaping issue with firebase privateKey as a Heroku config variable
我正在尝试从我的节点服务器(运行 作为 Firebase 云功能)连接到 Google Analytics Reporting API v4。我想按照这个例子使用 JWT 进行身份验证:http://nali.org/google-analytics-v4-api-node-js-starter-example/
但是我收到这个错误:
Error: error:0906D06C:PEM routines:PEM_read_bio:no start line
at Error (native)
at Sign.sign (crypto.js:307:26)
at Object.sign (/user_code/node_modules/googleapis/node_modules/jwa/index.js:76:45)
at Object.jwsSign [as sign] (/user_code/node_modules/googleapis/node_modules/jws/lib/sign-stream.js:32:24)
它似乎在尝试使用 PEM 文件,但我只想使用电子邮件和私钥。这不可能吗?我举的例子link有误导吗?
这是我的代码:
const email = functions.config().ga.email;
const privateKey = functions.config().ga.privatekey;
const scope = ['https://www.googleapis.com/auth/analytics.readonly'];
const token = new googleapis.google.auth.JWT(email, null, privateKey, scope, null);
token.authorize( (error, tokens) => {
if (error) {
console.error('Error connecting to GA:', error);
} else {
console.log('Authorized!', tokens);
}
})
感谢您的帮助!
菜鸟错误:我没有转义 privateKey 字符串中的 \n
。 firebase functions:config:set
正在将 \n
转换为 \n
固定代码如下所示:
const email = functions.config().ga.email;
const privateKey = _.replace(functions.config().ga.privatekey, /\n/g, '\n');
const scope = ['https://www.googleapis.com/auth/analytics.readonly'];
const jsonWebToken = new googleapis.google.auth.JWT(email, null, privateKey, scope, null);
jsonWebToken.authorize( (error, tokens) => {
if (error) {
console.error('Error connecting to GA:', error);
} else {
console.log('Authorized!', tokens);
}
});
我的实际问题是使用以下建议解决的:Escaping issue with firebase privateKey as a Heroku config variable