2017-09-23 5 views
1

J'ai partagé mon code et l'erreur apparue ci-dessous. Fondamentalement, j'ai suivi le tutoriel http://www.girliemac.com/blog/2017/01/06/facebook-apiai-bot-nodejs/ et un autre. Mon chatbot fonctionne pour smalltalk mais pas pour les trucs api météo. J'essaie de faire en sorte que le chatbot me donne des réponses sur la météo dans différentes villes. J'ai suivi le tutoriel exactement.OAuth Exception dans le chatbot de Facebook Messenger en utilisant api.ai et heroku (node.js)

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

// Code de index.js juste pour des trucs météo 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 
      } 
     }); 
     } 
    }) 
    } 

}); 

Comment puis-je corriger cette erreur?

Répondre

1

L'erreur est que l'ID de portée de page que vous envoyez avec le message au recipient.id n'est pas valide. En supposant que vous avez correctement configuré la fonction sendMessage() du didacticiel, le problème est probablement que le compte Facebook sur lequel vous utilisez le chat avec le robot n'a pas le rôle approprié.

Si le bot n'est pas public (c'est-à-dire n'a pas été soumis et approuvé), le compte Facebook que vous utilisez pour envoyer des messages au bot doit recevoir le rôle d'administrateur, de développeur ou de testeur.