我创建了一个具有并发gcloud应用程序的Dialogflow代理。但是,当我尝试将它集成到Node.js后端时,它似乎访问了错误的应用程序默认凭据。
我可以确认它正在验证身份验证是否成功,因为当我运行以下代码时,它的控制台记录了正确的项目ID(diagnosistest-56e81):
// Imports the Google Cloud client library.
const Storage = require('@google-cloud/storage')
// Instantiates a client. If you don't specify credentials when constructing
// the client, the client library will look for credentials in the
// environment.
const storage = new Storage();
// Makes an authenticated API request.
storage
.getBuckets()
.then((results) => {
const buckets = results[0];
console.log('Buckets:');
buckets.forEach((bucket) => {
console.log(bucket.name);
});
})
.catch((err) => {
console.error('ERROR:', err);
})
// You can find your project ID in your Dialogflow agent settings
const projectId = 'diagnosistest-56e81'; //https://dialogflow.com/docs/agents#settings
const sessionId = 'quickstart-session-id';
const query = 'hello';
const languageCode = 'en-US';
// Instantiate a DialogFlow client.
const dialogflow = require('dialogflow');
const sessionClient = new dialogflow.SessionsClient();
// Define session path
const sessionPath = sessionClient.sessionPath(projectId, sessionId);
// The text query request.
const request = {
session: sessionPath,
queryInput: {
text: {
text: query,
languageCode: languageCode,
},
},
};
// Send request and log result
sessionClient
.detectIntent(request)
.then(responses => {
console.log('Detected intent');
const result = responses[0].queryResult;
console.log(` Query: ${result.queryText}`);
console.log(` Response: ${result.fulfillmentText}`);
if (result.intent) {
console.log(` Intent: ${result.intent.displayName}`);
} else {
console.log(` No intent matched.`);
}
})
.catch(err => {
console.error('ERROR:', err);
});
ERROR: { Error: 7 PERMISSION_DENIED: Dialogflow API has not been used in project 764086051850 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/dialogflow.googleapis.com/overview?project=764086051850 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.
当我执行此操作时,会得到不同的错误消息:
ERROR: Error: Unexpected error while acquiring application default credentials: Could not load the default credentials. Browse to https://developers.google.com/accounts/docs/application-default-credentials for more information.
终于弄明白问题出在哪里了。在设置环境变量GOOGLE_APPLICATION_CREDENTIALS之后,您必须重新启动计算机,这样它才能生效!
它说要使用以下命令: 在Google Shell中,我尝试了以下操作: 我知道命令指向的是正确的文件位置。如何成功验证应用程序默认凭据?
我当前正在尝试访问云API,但收到以下错误:
我正在尝试托管一个使用谷歌Kubernetes引擎的应用程序。我的docker映像在本地运行时可以工作,但当我将其放到Google Cloud上并使用kubernetes集群进行设置时,它以一种非常奇怪的方式失败了。 我能够连接到应用程序,并且它可以工作,直到我触发的调用。然后它试图读取我通过环境变量提供的文件,结果出现了问题。我得到了这个(被截断和编辑的)回溯: 有没有人能猜到这里出了什么问题?
ADC(应用程序默认凭据)工作流是否只支持Google Cloud API(例如,支持Google Cloud Storage API,但不支持Google Sheet API)? 我指的是Google.auth的默认方法--不必在代码中存储任何私钥,这是一个巨大的胜利,也是有效利用ADC(应用程序默认凭据)设置的主要好处。 如果我将环境变量设置为私钥文件,例如key.json,则以下代码可以工作
问题内容: 我最近将gcloud库从118.0.0更新为132.0.0,并且remote_api_shell立即不再起作用。我经历了许多重新登录的过程,通过gcloud设置了应用程序默认凭据,并使用了服务帐户和环境变量。所有排列均失败,并显示相同的错误消息: 经过131.0.0和130.0.0的重新修订后,我回到118.0.0,重新登录,一切正常。 更新gcloud之后,我没有更新正在运行的应用程
我的android应用程序没有正确构建和部署。当启动一个新实例时,它会将我的应用程序启动到我的物理移动设备上,并且我能够在Visual Studio中进行调试。但现在它不会将应用程序启动到移动设备,而且当我手动运行应用程序时,它也不会在Visual Studio中调试。这个项目有可移植的类,并且正在使用Xamarin.Forms。 我确实更改了对AndroidManifest.xml的构建操作。