Excepción OAuth en Facebook mensajero conversacional usando api.ai y heroku (Node.js)

votos
1

He compartido mi código y el error que apareció a continuación. Básicamente, he seguido el tutorial http://www.girliemac.com/blog/2017/01/06/facebook-apiai-bot-nodejs/ y otro. Mi conversacional trabaja para Smalltalk, pero no para la materia api tiempo. Estoy tratando de hacer que el chatbot dame respuestas sobre el tiempo en diferentes ciudades. He seguido el tutorial exactamente.

  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' }

// código de index.js sólo para cosas api tiempo

 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
          }
        });
      }
    })
  }

});

¿Cómo puedo solucionar este error?

Publicado el 23/09/2017 a las 02:00
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
1

El error se debe a que el ID de la página de ámbito que está enviando el mensaje de recipient.idque no es válido. Suponiendo que haya configurado la sendMessage()función desde el tutorial corrently, más probable es que el problema es que la cuenta de Facebook que está utilizando el chat con el robot no tiene la función adecuada.

Si el robot no es pública (es decir, no se ha presentado y aprobado) la cuenta de Facebook que está utilizando para enviar mensajes a los que el robot tiene que ser dada al administrador, desarrollador o papel probador de configuración de la aplicación.

Respondida el 26/09/2017 a las 01:25
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more