У меня очень странная проблема.Я инструктор, использующий функции Firebase в качестве серверного приложения моего класса, и у двух моих учеников возникает та же проблема, что и у меня:
Мой веб-интерфейс выполняет пост-вызов функций Firebase, которые обращаются к IBM WAtsonи дайте мне ответ.
Дело в том, что он работает нормально для меня, и когда я делюсь с ними своей конечной точкой, их коды работают, когда они делятся своими конечными точками со мной, мой фронт всегда терпит неудачу с 400. Яне могу объяснить, что происходит.Все наши коды возвращаются хорошо, когда мы попадаем в API.
Вот мой рабочий URL: https://us -central1-chatbot-em-react.cloudfunctions.net / spoka '
Вот URL-адрес одного из моих учеников с журналом консоли:
Request URL: https://us-central1-chatbot-react.cloudfunctions.net/conversa
Request Method: POST
Status Code: 400
Remote Address: 172.217.11.46:443
Referrer Policy: no-referrer-when-downgrade
access-control-allow-origin: http://localhost:3000
alt-svc: quic=":443"; ma=2592000; v="44,43,39,35"
cache-control: private
content-encoding: gzip
content-length: 159
content-type: application/json; charset=utf-8
date: Wed, 10 Oct 2018 20:51:19 GMT
etag: W/"a8-3BNzCKPhycJhIXE/IBTFVDjBiN0"
function-execution-id: 0fye621c7drg
server: Google Frontend
status: 400
vary: Origin
x-cloud-trace-context: c7353ce928ae47283e9a248dc2cf2147
x-powered-by: Express
Provisional headers are shown
Accept: application/json, text/plain, */*
Content-Type: application/json;charset=UTF-8
Origin: http://localhost:3000
Referer: http://localhost:3000/
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
{input: "reginaldo", context: {conversation_id: "6a012cbd-d0af-44b3-982d-7b2d6c81b4e9",…}}
context: {conversation_id: "6a012cbd-d0af-44b3-982d-7b2d6c81b4e9",…}
input: "reginaldo"
Мы пропускаем разрешение или так?Вот код, который мы используем:
const functions = require('firebase-functions');
const watson = require('watson-developer-cloud/assistant/v1')
require('dotenv').config()
const cors = require('cors')({ origin: true })
const chatbot = new watson({
username: process.env.USERNAME,
password: process.env.PASSW0RD,
version: process.env.VERSION,
});
const workspace_id = process.env.WORKSPACE_ID;
exports.conversa = functions.https.onRequest((req, res) => {
cors(req, res, () => {
let payload = {
workspace_id,
context: req.body.context || {},
input: req.body.input || {}
};
chatbot.message(payload, (err, data) => {
if (err) {
return res.status(err.code || 500).json(err);
}
return res.json(trataResposta(payload, data));
})
})
})
const trataResposta = (payload, resposta) => {
console.log('watson disse: ', resposta.output.text[0]);
return resposta;
}
Мы ценим любую помощь.