hi
Mình đang làm theo các bước tạo bot chat trang này!
nhưng run báo lỗi này, Mọi người biết vì sao ko ạ?
Import thư viện facebook-chat-api bị lỗi trong Node.js
Đầu tiên là bạn cài facebook-chat-api chưa?
t cài rồi.
npm install facebook-chat-api
Có rồi, nhưng cái fbApi
nó không có trong facebook-chat-api
.
Hình như cú pháp là import {fbApi} from facebook-chat-api mà?
t copy Y hang bài hướng dẫn và làm theo, tại vì t muốn chạy và trải nghiệm á Bạn, chứ t chưa biết gì về Node js.
mới biết javascip thôi ạ
Đó là cú pháp của ES6 mà? Bạn học Javascript rồi mà chưa biết à? Node.js lấy gần như y nguyên cú pháp từ Javascript.
cú pháp Javascipt nhưng cơ chế cách hoạt động của node js application thì t chưa biết, nó bắt ra lỗi đấy, thì t chịu, ko biết fix.
có lệnh: node starter.js được chạy, nhưng khi t chạy thì cái node server.js được chạy đầu tiên.
ko hiểu.
const login = require("facebook-chat-api");
// Create simple echo bot
login({email: "FB_EMAIL", password: "FB_PASSWORD"}, (err, api) => {
if(err) return console.error(err);
api.listen((err, message) => {
api.sendMessage(message.body, message.threadID);
});
});
Bên họ config chạy starter.js rồi trong file đó có lệnh chạy server.js
Để ý dòng có biến start:
{
"name": "ChatBot",
"version": "1.0.0",
"description": "Chatbot messenger for personal account",
"main": "server.js",
"scripts": {
"start": "node starter.js",
},
"keywords":
"author": "LCD",
"license": "MIT",
"dependencies": {
"babel-polyfill": "^6.26.0",
"babel-preset-env": "^1.7.0",
"babel-preset-es2015": "^6.24.1",
"babel-preset-stage-2": "^6.24.1",
"babel-register": "^6.26.0",
"dialogflow": "^0.6.0",
"facebook-chat-api": "^1.6.0",
"node-env-file": "^0.1.8"
}
Ở trong file starter.js:
require('babel-register')({
presets: [ 'env' ]
});
module.exports = require('./server.js');
//Ở dòng trên họ export bằng cách require server.js để chạy file server.js
Rồi, nói chung là bạn thay dòng :
import fbApi from facebook-chat-api
thành:
const fbApi = require("facebook-chat-api")
Ngoài ra mình khuyên bạn nên học nodejs, học javascript rồi qua học nodejs dễ lắm, chứ cứ làm thế này thì bạn không hiểu bản thân mình đang làm gì đâu.
Vậy là đoạn đó không bị lỗi nữa rồi. Còn về cái lỗi mà bạn gặp phải là do cơ chế xác thực 2 lớp của Facebook. Cách đơn giản nhất là tắt cái đó đi, còn nếu vẫn muốn bật thì bạn tham khảo bài viết bên dưới xem sao:
tài khoản facebook mình không bật xác thực 2 lớp! sao phát sinh lỗi đó nhỉ?
thank you
Lỗi này phát sinh do fb phát hiện bạn đăng nhập từ 1 client lạ, không an toàn. Để giải quyết mình nghĩ bạn nên đọc kĩ document của facebook rồi làm. Ngoài ra cần trau dồi các kiến thức về NodeJS nói riêng và kĩ năng JS nói chung trước khi nhúng đầu vào làm việc connect với các API ngoài thế này