Να πάρει και το «σφάλμα, λάθος διακριτικό επικύρωσης», όταν προσπαθείτε να δημιουργήσετε ένα chatbot Facebook

ψήφοι
2

Προσπαθώ να δημιουργήσει ένα chatbot Facebook με NodeJS, Express, και ενός διακομιστή Heroku.

Δημιούργησα webhook μου για Heroku και είχε επαληθευτεί και αποθηκευτεί από το facebook. Στη συνέχεια άρχισε να προσθέσετε κώδικα που θα απαντήσει στα εισερχόμενα μηνύματα και δεν μπορώ να φαίνεται για να το συνδέσετε. Διατηρεί λέγοντας «Σφάλμα, λάθος διακριτικό επικύρωσης» όταν προσπαθώ να φορτώσει webhook μου στον browser μου. Και όταν προσπαθώ να στείλω bot μου ένα μήνυμα που παίρνω καμία απάντηση. Ακόμα κι αν έχω ήδη είχε επαληθευτεί και δεν αλλάξετε τον κωδικό.

Εδώ είναι ο κωδικός μου:

var express = require('express');
var bodyParser = require('body-parser');

var app = express();
var port = process.env.PORT || 3000;

// body parser middleware
app.use(bodyParser.urlencoded({ extended: true }));

// test route
//app.get('/', function (req, res) { res.status(200).send('Hello world!') });

app.get('/', function (req, res) {
  if (req.query['hub.verify_token'] === '8FKU9XWeSjnZN4ae') {
    res.send(req.query['hub.challenge']);
  }
  res.send('Error, wrong validation token');
})

app.post('/', function (req, res) {
  messaging_events = req.body.entry[0].messaging;
  for (i = 0; i < messaging_events.length; i++) {
    event = req.body.entry[0].messaging[i];
    sender = event.sender.id;
    if (event.message && event.message.text) {
      text = event.message.text;
      sendTextMessage(sender, Text received, echo: + text.substring(0, 200));
    }
  }
  res.sendStatus(200);
});

// error handler
app.use(function (err, req, res, next) {
  console.error(err.stack);
  res.status(400).send(err.message);
});

app.listen(port, function () {
  console.log('Listening on port ' + port);
});

var token = <myToken>;

function sendTextMessage(sender, text) {
  messageData = {
    text:text
  }
  request({
    url: 'https://graph.facebook.com/v2.6/me/messages',
    qs: {access_token:token},
    method: 'POST',
    json: {
      recipient: {id:sender},
      message: messageData,
    }
  }, function(error, response, body) {
    if (error) {
      console.log('Error sending message: ', error);
    } else if (response.body.error) {
      console.log('Error: ', response.body.error);
    }
  });
}

Έτσι, είμαι σύγχυση ως προς το γιατί τίποτα δεν συμβαίνει και γιατί παίρνω το σφάλμα. Νιώθω σαν να είμαι λείπει ένα ολόκληρο βήμα. Είμαι μετά από αυτό το σεμινάριο από τον τρόπο: https://developers.facebook.com/docs/messenger-platform/quickstart

Κάθε βοήθεια είναι ευπρόσδεκτη. Ευχαριστώ!

Επεξεργασία: Εδώ είναι τα αρχεία καταγραφής Heroku μου

Heroku

Δημοσιεύθηκε 16/04/2016 στις 17:13
πηγή χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
0

Μπορείτε πραγματικά χρήση «αίτημα», αλλά που ποτέ δεν εισάγουν πουθενά. Εδώ είναι πώς να το διορθώσετε:

var request = require("request")

Μόλις έχετε προσθέσει ότι για να index.js σας ή app.js αρχείου (βασικά ό, τι αυτό το αρχείο είναι), φροντίστε να το κάνετε:

npm install request --save

Αυτό θα πρέπει να το διορθώσουμε. Δυστυχώς, Heroku δεν λάθη και να πω ότι δεν ξέρει τι «αίτημα» είναι και γι 'αυτό ήταν τόσο δύσκολο να το καταλάβουν αυτό στην πρώτη θέση!

Απαντήθηκε 16/04/2016 στις 19:06
πηγή χρήστη

ψήφοι
0

  1. Μην δημοσιεύετε πλήρη διακριτικά πρόσβασης σας εδώ!
  2. Έχετε δοκιμαστεί η έξοδος της πρόκλησης; Δεδομένου ότι είναι απλά ένα GET και ξέρετε όλες τις τιμές μπορείτε να το δοκιμάσετε μόνοι σας: your-app-domain.com/your-callback-url?hub_mode=subscribe&hub_verify_token=the_token_you_set_in_your_app_config&hub_challenge=pingτο οποίο Γνωστό εκτύπωσης «ping» αν όλα δουλεύουν μια χαρά.
  3. Βεβαιωθείτε ότι έχετε προσθέσει sendStatus (200) με την απόκριση πρόκληση κομβικό σημείο, πάρα πολύ.
  4. Θα πρέπει να εγγραφείτε σελίδα σας στο app για πρώτη φορά. Για να γίνει αυτό κάνει μια αίτηση POST με / σας σελίδα-id / subscribed_apps που πρέπει να επιστρέψουν «επιτυχία». Μπορείτε να κάνετε μια αίτηση GET στο ίδιο τελικό σημείο μετά στο διπλό έλεγχο η εφαρμογή σας έχει εγγραφεί στη σελίδα σας
  5. Δεν αναφέρατε ποια γεγονότα θα εγγραφεί (πρέπει να είναι message_deliveries, μηνύματα, messaging_optins, messaging_postbacks)
  6. Βεβαιωθείτε ότι καρτέλα webhooks στην εφαρμογή ταμπλό του αυτοκινήτου σας τώρα λέει «πλήρης»
  7. και πάλι Test
Απαντήθηκε 18/04/2016 στις 11:34
πηγή χρήστη

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