Unofficial Facebook Chat API
In version 2.7.3, we add the function to send comments (api.sendCMT) and post 24-hour news (api.postStory).
Facebook hiện có API chính thức cho bot trò chuyện Tại Đây.
API này là cách duy nhất để tự động hóa các chức năng trò chuyện trên tài khoản người dùng. Chúng tôi làm điều này bằng cách giả lập trình duyệt. Điều này có nghĩa là thực hiện chính xác các yêu cầu GET/POST và lừa Facebook nghĩ rằng chúng tôi đang truy cập trang web bình thường. Bởi vì chúng tôi đang làm theo cách này, API này sẽ không hoạt động với mã thông báo xác thực mà yêu cầu thông tin xác thực của tài khoản Facebook. Tuyên bố từ chối trách nhiệm: Chúng tôi không chịu trách nhiệm nếu tài khoản của bạn bị cấm vì các hoạt động spam như gửi nhiều tin nhắn cho những người bạn không biết, gửi tin nhắn rất nhanh, gửi các URL có vẻ spam, đăng nhập và đăng xuất rất nhanh... Chịu trách nhiệm Facebook công dân.
Xem bên dưới để biết các dự án sử dụng API này.
Xem nhật ký thay đổi đầy đủ để biết chi tiết về bản phát hành.
Cài Đặt
Nếu bạn chỉ muốn sử dụng nhatcoder-fb-api, bạn nên sử dụng lệnh này:
npm install nhatcoder-fb-api
It will download facebook-chat-api from NPM repositories
Tối ưu
Nếu bạn muốn sử dụng flush edge (trực tiếp từ github) để kiểm tra các tính năng mới hoặc gửi báo cáo lỗi, thì đây là lệnh dành cho bạn:
npm install nhatcoder2003/nhatcoder-fb-api
Kiểm tra bot của bạn
Nếu muốn kiểm tra bot của mình mà không cần tạo một tài khoản khác trên Facebook, bạn có thể sử dụng Tài khoản Facebook Whitehat.
Ví dụ sử dụng
const login = require("nhatcoder-fb-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);
});
});
Kết quả:
Tài liệu
login
api.sendCMT
api.postStory
api.addUserToGroup
api.changeAdminStatus
api.changeArchivedStatus
api.changeBlockedStatus
api.changeGroupImage
api.changeNickname
api.changeThreadColor
api.changeThreadEmoji
api.createPoll
api.deleteMessage
api.deleteThread
api.forwardAttachment
api.getAppState
api.getCurrentUserID
api.getFriendsList
api.getThreadHistory
api.getThreadInfo
api.getThreadList
api.getThreadPictures
api.getUserID
api.getUserInfo
api.handleMessageRequest
api.listen
api.listenMqtt
api.logout
api.markAsRead
api.markAsReadAll
api.muteThread
api.removeUserFromGroup
api.resolvePhotoUrl
api.searchForThread
api.sendMessage
api.sendTypingIndicator
api.setMessageReaction
api.setOptions
api.setTitle
api.unsendMessage
api.sendCMT
Chức năng chính
Gửi tin nhắn
api.sendMessage(message, threadID[, callback][, messageID])
Nhiều loại tin nhắn có thể được gửi: * Thông thường: đặt trường body
thành thông báo mong muốn dưới dạng chuỗi.
Hình dán: đặt trường sticker
thành ID hình dán mong muốn.
Tệp hoặc hình ảnh: Đặt trường attachment
thành một luồng có thể đọc được hoặc một mảng các luồng có thể đọc được.
URL: đặt trường url
thành URL mong muốn.
Emoji: đặt trường emoji
thành biểu tượng cảm xúc mong muốn dưới dạng một chuỗi và đặt trường emojiSize
với kích thước của biểu tượng cảm xúc (small
, medium
, large
)
Lưu ý rằng một tin nhắn chỉ có thể là một tin nhắn thông thường (có thể trống) và tùy ý là một trong các tin nhắn sau: nhãn dán, tệp đính kèm hoặc url.
Mẹo: để tìm ID của chính mình, bạn có thể xem bên trong cookie. userID
nằm dưới tên c_user
.
Mẫu (Tin nhắn cơ bản)__
const login = require("facebook-chat-api");
login({email: "FB_EMAIL", password: "FB_PASSWORD"}, (err, api) => {
if(err) return console.error(err);
var yourID = "000000000000000";
var msg = "Hey!";
api.sendMessage(msg, yourID);
});
Mẫu (Tải lên hình ảnh)__
const login = require("facebook-chat-api");
login({email: "FB_EMAIL", password: "FB_PASSWORD"}, (err, api) => {
if(err) return console.error(err);
// Note this example uploads an image called image.jpg
var yourID = "000000000000000";
var msg = {
body: "Hey!",
attachment: fs.createReadStream(__dirname + '/image.jpg')
}
api.sendMessage(msg, yourID);
});
Lưu phiên đăng nhập.
Để tránh phải đăng nhập mỗi lần, bạn nên lưu AppState (cookie, v.v.) vào một tệp, sau đó bạn có thể sử dụng nó mà không cần có mật khẩu trong tập lệnh của mình.
Mẫu
const fs = require("fs");
const login = require("facebook-chat-api");
var credentials = {email: "FB_EMAIL", password: "FB_PASSWORD"};
login(credentials, (err, api) => {
if(err) return console.error(err);
fs.writeFileSync('appstate.json', JSON.stringify(api.getAppState()));
});
Nghe một cuộc trò chuyện
api.listen(callback)
Nghe đồng hồ cho các tin nhắn được gửi trong một cuộc trò chuyện. Theo mặc định, điều này sẽ không nhận các sự kiện (tham gia/rời khỏi cuộc trò chuyện, thay đổi tiêu đề, v.v...) nhưng nó có thể được kích hoạt bằng api.setOptions({listenEvents: true})
. Theo mặc định, điều này sẽ bỏ qua các tin nhắn được gửi bởi tài khoản hiện tại, bạn có thể kích hoạt tính năng nghe tin nhắn của chính mình bằng api.setOptions({selfListen: true})
.
Mẫu
const fs = require("fs");
const login = require("facebook-chat-api");
// Bot đơn giản. Nó sẽ lặp lại tất cả những gì bạn nói.
// Sẽ dừng khi bạn nói '/stop'
login({appState: JSON.parse(fs.readFileSync('appstate.json', 'utf8'))}, (err, api) => {
if(err) return console.error(err);
api.setOptions({listenEvents: true});
var stopListening = api.listen((err, event) => {
if(err) return console.error(err);
api.markAsRead(event.threadID, (err) => {
if(err) console.error(err);
});
switch(event.type) {
case "message":
if(event.body === '/stop') {
api.sendMessage("Goodbye…", event.threadID);
return stopListening();
}
api.sendMessage("TEST BOT: " + event.body, event.threadID);
break;
case "event":
console.log(event);
break;
}
});
});