2012-04-17 40 views
11

tôi cần phải mở rộng access token facebook của tôi, tôi gọi đây:Mở rộng Facebook Trang access token

https://graph.facebook.com/oauth/access_token? 
client_id={MY PAGE ID}& 
client_secret={THE SECRET KEY OF MY APP}& 
grant_type=fb_exchange_token& 
fb_exchange_token={AN ACCESS TOKEN FOR MY PAGE} 

và tôi nhận được lỗi này:

"error": { 
     "message": "Error validating application. Cannot get application info due to a system error.", 
     "type": "OAuthException", 
     "code": 101 
    } 

Tôi đã nhìn thấy một rất nhiều vấn đề với access_token đó, nhưng không có câu trả lời nào liên quan đến trang, idk tại sao facebook sử dụng api rằng tại sao ... nhưng là cách ...

Cảm ơn bạn,

+0

Bạn đã giải quyết nó? –

+0

Tôi cũng hy vọng rằng ai đó từ nhóm nhà phát triển facebook có thể cung cấp giải pháp phù hợp bởi vì chúng tôi phải đối mặt với cùng một vấn đề ngay bây giờ. –

Trả lời

21

Để có được một truy cập tồn tại lâu dài mã thông báo bạn cần phải làm theo những bước sau:

  1. Tạo một ứng dụng
  2. Tạo một trang (tài khoản của bạn cần phải được "quản trị" của trang)
  3. Liên kết ứng dụng với Trang (giống như cách bạn thực hiện khi bạn muốn thêm tab trang vào một trang)

    http://facebook.com/add.php?api_key=*YOUR_APP_ID*&pages=1&page=*YOUR_PAGE_ID* 
    
  4. Nhận mã thông báo truy cập tồn tại trong thời gian ngắn với quyền "manage_pages" được liên kết với Ứng dụng của bạn.

    https://graph.facebook.com/oauth/authorize?client_id=__APP_ID__&scope=manage_pages&redirect_uri=http://www.facebook.com/connect/login_success.html 
    then 
    https://graph.facebook.com/oauth/access_token?client_id=__APP_ID__&redirect_uri=http://www.facebook.com/connect/login_success.html&client_secret=__APP_SECRET__&code=__CODE_FROM_PREVIOUS_REQUEST__ 
    
  5. Sử dụng Graph API Explorer với yêu cầu /me/accounts bạn sẽ nhìn thấy thẻ truy cập cho mỗi trang mà bạn đang quản trị viên. Vấn đề là các mã truy cập đó chỉ tồn tại trong thời gian ngắn.

  6. Chuyển đổi thẻ truy cập ngắn ngủi của bạn đến một tồn tại lâu dài (mở rộng thẻ truy cập):

    https://graph.facebook.com/oauth/access_token?client_id=_APP_ID_&client_secret=_APP_SECRET_&grant_type=fb_exchange_token&fb_exchange_token=_ACCESS_TOKEN_ON_STEP_4_ 
    
  7. Bây giờ bạn có thể kiểm tra thẻ truy cập mới của bạn với Access Token Debugger.

+0

câu hỏi: Ứng dụng của tôi không phải là 'ứng dụng tab' làm cách nào để liên kết nó? – siniradam

+1

@siniradam Sử dụng URL này: http://facebook.com/add.php?api_key=*YOUR_APP_ID*&pages=1&page=*YOUR_PAGE_ID* – FR6

+0

Cảm ơn vì điều đó. BTW Hôm qua tôi phát hiện ra nếu tôi gửi yêu cầu đến/me/accounts với mã thông báo dài hạn, danh sách sẽ trả về với mã thông báo dài hạn. Tôi đã thử nghiệm với điều này: https://developers.facebook.com/tools/debug/access_token?q= – siniradam

2

Scenario 5: Page Access Tokens

When a user grants an app the manage_pages permission, the app is able to obtain page access tokens for pages that the user administers by querying the [User ID]/accounts Graph API endpoint. With the migration enabled, when using a short-lived user access token to query this endpoint, the page access tokens obtained are short-lived as well.

Exchange the short-lived user access token for a long-lived access token using the endpoint and steps explained earlier. By using a long-lived user access token, querying the [User ID]/accounts endpoint will now provide page access tokens that do not expire for pages that a user manages. This will also apply when querying with a non-expiring user access token obtained through the deprecated offline_access permission.

https://developers.facebook.com/roadmap/offline-access-removal/

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