4

我有一个可以使用的 Google Cloud AutoML NL 模型。我希望将此与我的网络应用与 Firebase 后端相关联。以下是我要调用的代码。存在授权问题。我想了解如何授权应用程序以帮助客户端应用程序访问 AutoML 模型。

async add(data){
var headers = new Headers();
headers.append('Content-Type:application/json')

var options = {
  method: 'POST',
  headers,
  body: JSON.stringify(data)
}

var request = new Request('https://automl.googleapis.com/v1beta1/projects/project1/locations/us-central1/models/TCN5678:predict', options )

var response = await fetch(request)

var status = await response.status
console.log(status)}
4

2 回答 2

1

经过几个小时的努力,我终于可以解决这个问题。除了 Firebase(和 NL AutoML),我不确定它是如何工作的。我使用 Firebase Cloud Function 来解决问题,并使用了一个隐藏的文档来访问 AutoML npm。给定的代码需要一些更改。Firebase CF 无需明确授权即可进行身份验证。以下是建议的代码,我可以使用 AutoML 进行预测分类。希望它也对其他人有所帮助。最后,谷歌文档似乎是一种测试搜索技巧和耐心的方法,但不确定它对他们有什么帮助:

const automl = require('@google-cloud/automl');
exports.sendToAML = functions.database.ref('/path/to/text').onWrite((snapshot, context) =>{


var client = new automl.PredictionServiceClient({
  // optional auth parameters.
});

var formattedName = client.modelPath('bucketId', 'us-central1', 'TCN****3567595');
var payload = {
  "textSnippet": {
       "content": snapshot.after._data.text,
        "mime_type": "text/plain"
   },
};
var request = {
  name: formattedName,
  payload: payload,
};
client.predict(request)
  .then(responses => {
    var response = responses[0];
    return console.log(response.payload[0].classification.score)
  })
  .catch(err => {
    console.error(err);
  });
});

`

于 2018-08-16T17:22:35.897 回答
0

您应该使用服务帐户OAuth 2.0作为身份验证方法。尽量避免使用 API 密钥,因为您的凭据可能会被泄露和滥用,从而产生不希望的费用。

于 2018-08-15T17:15:00.527 回答