Import thư viện facebook-chat-api bị lỗi trong Node.js

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 ạ?

Đầu tiên là bạn cài facebook-chat-api chưa?

1 Like

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.

2 Likes

Hình như cú pháp là import {fbApi} from facebook-chat-api mà?

1 Like

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.

1 Like

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ái ảnh nó làm, thì
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);
    });
});
4 Likes

@Pham_Hoai_Nam À cái này là từ trang npmjs nè. Định đăng code lên mà bạn đăng trước rồi :laughing:

2 Likes

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
3 Likes

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.

3 Likes


nó phát sinh lỗi này bạn à

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:

3 Likes

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

5 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?