2012-08-28 35 views
8

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ẻ

  1. 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

  2. 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

  3. 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!

+0

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

Trả lời

-1

Ở bước 2, bạn phải sử dụng số access_token của người dùng để truy cập điểm cuối API /accounts. Bạn không thể sử dụng Mã thông báo truy cập ứng dụng tại đây.

gì bạn cần làm là:

  1. Nhận thẻ truy cập của người dùng từ Facebook
  2. Exchange access_token một thời gian dài ngủi thẻ
  3. Gọi /accounts để có được một dài sống truy cập trang thẻ
  4. Truy cập trang thông tin chi tiết bằng mã thông báo tồn tại lâu dài cho đến khi mã hết hạn
  5. Lặp lại các bước 1-4.
+0

Bạn có nghĩa là [Mã thông báo người dùng] của ứng dụng (https://developers.facebook.com/tools/access_token/) không? Nếu vậy, có cách nào để có được điều này theo chương trình? (Tôi đang thử với acces của người dùng – user1597852

+0

Tôi đã nói App 'access_token' không phải là" mã thông báo người dùng ".Hãy làm theo hướng dẫn của tôi ở trên để có được những gì bạn cần theo chương trình.Trong bước (3), tôi cung cấp cho bạn lệnh gọi API để nhận access_token cho Tất cả mọi thứ phải được thực hiện bằng cách sử dụng 'access_token' của người dùng –

+0

Làm thế nào để bạn thực hiện bước (2)? –

Các vấn đề liên quan