Mục tiêu chính: Làm cách nào để nhận mã thông báo truy cập với hiệu lực không giới hạn cho ứng dụng facebook?Làm cách nào để có được Mã truy cập Facebook lâu dài?
Thông tin cơ bản
Chúng tôi có một ứng dụng FB gọi MyApp với những sản phẩm sau thành lập:
- MyApp được ủy quyền để tương tác với các ứng dụng facebook của chúng tôi
- MyApp có quyền truy cập để quản lý của chúng tôi các trang (manage_pages)
- MyApp có quyền truy cập vào Thông tin chi tiết (read_insights)
Mục tiêu của chúng tôi là tự động trích xuất dữ liệu Thông tin chi tiết, ví dụ: mỗi đêm một lần.
Cố gắng với oauth tạo ứng dụng thẻ
Nhận APP_ACCESS_TOKEN thuộc MyApp
graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID & client_secret = YOUR_APP_SECRET & grant_type = client_credentials
ví dụ về mã thông báo đã nghỉ hưu: 328467452729456598 | Wn2Gt69Ofg5ySdOGa3TsP2p4R
Sử dụng APP_ACCESS_TOKEN để có được PAGE_ACCESS_TOKEN cho mỗi trang graph.facebook.com/me/accounts?access_token=APP_ACCESS_TOKEN
Sử dụng PAGE_ACCESS_TOKEN để có được thông tin chi tiết dữ liệu của trang: graph.facebook.com/YOUR_APP_ID/ những hiểu biết access_token = PAGE_ACCESS_TOKEN
vấn đề của tôi là APP_ACCESS_TOKEN tôi nhận được từ bước 1 có vẻ là thiếu phần người sử dụng của thẻ, dẫn đến các lỗi sau khi chạy bước 2:
"message": "An active access token must be used to query information about the current user.",
"type": "OAuthException",
"code": 2500
Cố gắng với thẻ lấy từ Graph API Explorer thẻ
Nếu tôi sử dụng APP_ACCESS_TOKEN được khuếch đại qua Graph API Explorer (https://developers.facebook.com/tools/explorer), tôi nhận được một mã thông báo với phần người dùng dài hơn đáng kể. Nếu tôi sử dụng mã thông báo này ở bước 2 và 3, tôi nhận được dữ liệu chính xác, nhưng tất cả các mã chỉ hợp lệ trong 2 giờ và sau đó tôi không thể sử dụng mã này để truy xuất dữ liệu thông tin chi tiết tự động.
Cố gắng với trao đổi thẻ ngủi ngắn trong thời gian dài sống thẻ
Tiếp theo các bước được nêu trong hướng dẫn này: https://developers.facebook.com/roadmap/offline-access-removal/#page_access_token, tôi đã cố gắng để trao đổi một mã thông báo ngủi ngắn cho một còn sống một.
Nếu tôi sử dụng thử để trao đổi token thu được từ quá trình oauth, tôi nhận được lỗi:
"message": "No user access token specified",
"type": "OAuthException",
"code": 1
Nếu tôi sử dụng thẻ thu được bằng tay từ các nhà thám hiểm Graph trong phương pháp trao đổi, tôi có thể nhận được các bước khác để hoạt động, nhưng mã thông báo mới này kéo dài bao lâu? Nếu mã thông báo hết hạn sau x ngày hoặc sau một số sự kiện khác, tôi vẫn sẽ phải đối mặt với vấn đề lấy mã thông báo ban đầu theo chương trình (trái ngược với mọi cách thủ công từ Graph Explorer).
Vì vậy, có ai biết cách tôi có thể nhận được mã thông báo được truy xuất tự động và lâu dài để giải quyết vấn đề này không?
Cảm ơn!
Bạn cần một thẻ truy cập _user_ để truy vấn '/ tôi/accounts', không phải là một thẻ truy cập ứng dụng. – CBroe