Thông báo "Error Validating Access Token" xuất hiện khi sử dụng Facebook/Messenger chủ yếu ở hai nhóm người dùng: người dùng thường truy cập Messenger và nhà phát triển tích hợp Facebook Login qua API.

Lỗi này liên quan đến quy trình bảo mật của Facebook. Nếu bất kỳ bước nào không hoàn tất, không hợp lệ hoặc hết hạn, bạn sẽ nhận được thông báo này. Vì có hai trường hợp riêng biệt, bài viết cung cấp hai giải pháp tương ứng.
Nguyên nhân gây lỗi Error Validating Access Token
Khác với các lỗi thông thường, lỗi này có các nguyên nhân sau:
- Phiên làm việc (session) trong Messenger đối với tài khoản của bạn không hợp lệ hoặc đã hết hạn.
- Access token Facebook dùng cho API đã hết hạn. Điều này thường xảy ra trong môi trường phát triển vì token chỉ hợp lệ trong thời gian giới hạn trước khi phải lấy lại (dành cho developer).
- Người dùng đã thay đổi mật khẩu hoặc đăng xuất khỏi tất cả thiết bị đã kết nối vì lý do bảo mật.
- Facebook chủ động đăng xuất bạn khỏi Messenger vì lý do an ninh.
Đối với giải pháp dành cho developer, chúng tôi giả định bạn đã nắm cơ bản về API call sử dụng access token. Nếu bạn mới bắt đầu, hãy tìm hiểu tài liệu chuyên sâu về access token trước.
Giải pháp 1: Làm mới dữ liệu cục bộ của Messenger (dành cho lỗi trên Messenger)
Người dùng thường gặp lỗi này khi đăng nhập Messenger hoặc chuyển đổi giữa các tài khoản. Đây chỉ là một lỗi nhỏ trên thiết bị Android. Smartphone lưu trữ tất cả access token liên quan đến Messenger. Nếu bất kỳ token nào trở nên không hợp lệ hoặc không được cập nhật tự động, lỗi sẽ xuất hiện.
Chúng ta sẽ làm mới dữ liệu ứng dụng Messenger. Hãy chuẩn bị sẵn username và mật khẩu vì có thể phải nhập lại.
- Mở Settings (Cài đặt) > Applications Manager (Quản lý ứng dụng).
- Tìm mục Messenger và mở nó.
- Chọn Clear data (Xóa dữ liệu) và xóa cả dữ liệu ứng dụng lẫn cache.
- Đóng Settings, khởi động lại Messenger (đóng hoàn toàn trước) và thử đăng nhập lại xem lỗi đã hết chưa.
Giải pháp 2: Kiểm tra access token hết hạn (dành cho nhà phát triển)
Access token là các đối tượng dùng bởi ứng dụng để thực hiện yêu cầu API thay mặt người dùng. Token đại diện cho sự ủy quyền của một ứng dụng cụ thể để cho phép đăng nhập hoặc truy cập thông tin người dùng.
Nếu bạn dùng Facebook API và access token cho các mục đích đơn giản (ví dụ: dùng Facebook để xác thực đăng ký trong ứng dụng), hãy đảm bảo token chưa hết hạn. Thông thường, token Facebook hết hạn sau 2 giờ kể từ khi yêu cầu từ server. Bạn có thể xem tài liệu chính thức "How-To: Handle expired access tokens" của Facebook.
Lưu ý: Trong môi trường phát triển, đôi khi tùy chọn Remove offline_access permission được bật. Trong một số trường hợp, điều này khiến token hết hạn ngay cả khi chưa đến hạn. Hãy tắt các tùy chọn này.
Bạn cũng có thể xin quyền offline_access để nhận token không hết hạn, tránh gây rắc rối.