Исключение OAuth в чате-мессенджере Facebook с использованием api.ai и heroku(node.js)
Я поделился своим кодом и ошибкой, которая появилась ниже. В основном, я следовал за учебником http://www.girliemac.com/blog/2017/01/06/facebook-apiai-bot-nodejs/ и другим. Мой чат-бот работает для Smalltalk, но не для API погоды. Я пытаюсь заставить чат-бота давать мне ответы о погоде в разных городах. Я точно следовал учебнику.
Error: { message: '(#100) No matching user found',
type: 'OAuthException',
code: 100,
error_subcode: 2018001,
fbtrace_id: 'DeubaTWU6Gg' }
Error: { message: '(#100) No matching user found',
type: 'OAuthException',
code: 100,
error_subcode: 2018001,
fbtrace_id: 'FSiMes3IwHv' }
// код из index.js только для погодных приложений API
app.post('/ai', (req, res) => {
//console.log('*** Webhook for api.ai query ***');
//console.log(req.body.result);
if (req.body.result.action === 'weather') {
// console.log('*** weather ***');
let city = req.body.result.parameters['geo-city'];
let restUrl = 'http://api.openweathermap.org/data/2.5/weather?APPID='+process.env.WEATHER_API_KEY+'&q='+city;
request.get(restUrl, (err, response, body) => {
if (!err && response.statusCode == 200) {
let json = JSON.parse(body);
// console.log(json);
let tempF = ~~(json.main.temp * 9/5 - 459.67);
let tempC = ~~(json.main.temp - 273.15);
let msg = 'The current condition in ' + json.name + ' is ' + json.weather[0].description + ' and the temperature is ' + tempF + ' ℉ (' +tempC+ ' ℃).'
return res.json({
speech: msg,
displayText: msg,
source: 'weather'
});
} else {
let errorMessage = 'I failed to look up the city name.';
return res.status(400).json({
status: {
code: 400,
errorType: errorMessage
}
});
}
})
}
});
Как я могу исправить эту ошибку?
1 ответ
Ошибка в том, что идентификатор области страницы, который вы отправляете вместе с сообщением в recipient.id
не является действительным. Предполагая, что вы настроили sendMessage()
Функция из учебника, скорее всего, проблема в том, что учетная запись Facebook, которую вы используете в чате с ботом, не имеет надлежащей роли.
Если бот не является общедоступным (то есть не был представлен и одобрен), учетная запись Facebook, которую вы используете для отправки сообщений боту, должна быть назначена администратором, разработчиком или тестером в настройках вашего приложения.