Node.jsを使用してFirebase関数からGoogle Site Verification APIを使用しようとしています。 Githubの上Fire Base関数からGoogle Site Verification APIにアクセスする
GoogleがAPI-nodejsクライアントで利用可能READMEリポジトリではなく、手動でのOAuth2クライアント、JWTクライアント、または計算クライアントを作成するデフォルトのアプリケーションの方法を使用することをお勧めします。
は私がFirebase機能でローカルに(エミュレート機能環境)とリモートで実行しようとしたことを、次の例を書いた: :実行時に、どちらの場合もconst google = require('googleapis');
google.auth.getApplicationDefault(function (err, authClient, projectId) {
if (err) {
console.log('Authentication failed because of ', err);
return;
}
if (authClient.createScopedRequired && authClient.createScopedRequired()) {
authClient = authClient.createScoped([
'https://www.googleapis.com/auth/siteverification'
]);
}
const siteVerification = google.siteVerification({
version: 'v1',
auth: authClient
});
siteVerification.webResource.get({
id: 'test.com'
}, {}, function (err, data) {
if (err) {
console.log('siteVerification get error:', err);
} else {
console.log('siteVerification result:', data);
}
});
});
、私は次のエラーを取得します
siteVerification get error: { Error: A Forbidden error was returned while attempting to retrieve an access token for the Compute Engine built-in service account. This may be because the Compute Engine instance does not have the correct permission scopes specified. Insufficient Permission
at Request._callback (/user_code/node_modules/googleapis/node_modules/google-auth-library/lib/transporters.js:85:15)
at Request.self.callback (/user_code/node_modules/googleapis/node_modules/request/request.js:188:22)
at emitTwo (events.js:106:13)
at Request.emit (events.js:191:7)
at Request.<anonymous> (/user_code/node_modules/googleapis/node_modules/request/request.js:1171:10)
at emitOne (events.js:96:13)
at Request.emit (events.js:188:7)
at IncomingMessage.<anonymous> (/user_code/node_modules/googleapis/node_modules/request/request.js:1091:12)
at IncomingMessage.g (events.js:292:16)
at emitNone (events.js:91:20)
code: 403,
errors:
[ { domain: 'global',
reason: 'insufficientPermissions',
message: 'Insufficient Permission' } ] }
Firebaseに関連付けられたクラウドプロジェクトでサイト検証APIが有効になっていることに注意してください。
UPDATE:
info: siteVerification get error: { Error: You are not an owner of this site.
at Request._callback
...
at IncomingMessage.g (events.js:292:16)
at emitNone (events.js:91:20)
code: 403,
errors:
[ { domain: 'global',
reason: 'forbidden',
message: 'You are not an owner of this site.' } ] }
このエラーはのIDを取得するためのものです:
は、プロジェクトの所有者の役割を持つサービスアカウントを作成し、JWTの方法で認証するには、以下のアクセス権のエラーにつながります私がAPIエクスプローラを使って同じIDで電話をしたので私が所有することを知っているサイトで、これは詳細を返します。
Googleクラウドコンソールで一部の権限を設定する必要があるのか、認証方法が異なるのかわかりません。手動のユーザー認証を使用するOAuth 2.0クライアントのみが許可されていると感じています。
ヘルプを歓迎します。