2011-09-15 28 views
7

Chúng tôi đang sử dụng SDK Javascript Facebook để xác thực người dùng của mình.Làm cách nào để nhận mã thông báo truy cập từ yêu cầu đã ký trên Facebook?

Khi người dùng xác thực, người dùng sẽ nhận được một fbsr_ <app_id> cookie có chứa yêu cầu đã ký.

Sau đó, chúng tôi sử dụng AJAX để đăng một số thông tin lên máy chủ của chúng tôi. Server nhận cookie với yêu cầu ký kết, nhưng khi máy chủ phân tích các yêu cầu ký (sửa đổi python SDK) trong cookie, nó giải mã đối tượng JSON như:

 
{ 
    "algorithm": "HMAC-SHA256", 
    "code": "2.AQDBJ3-ZpURb9P4T.3600.1316037600.1-786359552|BNK6FGOAkvMs7slboQMSIEJYDWc", 
    "issued_at": 1316031333, 
    "user_id": "786359552" 
} 

Đây là trái với những gì các signed request documentation nói rằng chúng ta nên nhận được.

Máy chủ cần mã thông báo truy cập để có thể nhận thêm một số thông tin với GraphAPI.

Làm cách nào để nhận mã thông báo truy cập từ yêu cầu đã ký?

+3

Câu trả lời là ở đây: [http://facebook.stackoverflow.com/questions/7201521/problem-getting-access-token-after-migrating-to -oauth-2-0] [1] [1]: http://facebook.stackoverflow.com/questions/7201521/problem-getting-access-token-after-migrating-to-oauth- 2-0 – sbaechler

+0

Cảm ơn bạn, liên kết đó đã giải quyết được vấn đề của tôi. – Eric

Trả lời

2

sử dụng quy trình làm việc oauth2 mới với sdk javascript mã thông báo người dùng sẽ có sẵn.

Sau khi bạn xác nhận bạn có thể tìm thấy các mã thông báo với một cái gì đó như thế này

FB.getLoginStatus(function(response) { 

       if (response.status === 'connected') { 

       alert(response.authResponse.accessToken); 

       } 
     }); 

Một khi bạn có các dấu hiệu bạn chỉ có thể vượt qua đó trở lại để hỗ trợ của bạn để truy vấn đồ thị.

+0

Hoạt động hoàn hảo dunno tại sao OP lại ngủ! – BlackDivine

+0

Vì câu trả lời này không giải quyết được câu hỏi. Câu trả lời được đưa ra trong phần bình luận cho câu hỏi của tôi. – Eric

+0

Tôi đã gặp vấn đề tương tự với cài đặt cookie không đáng tin cậy. Giải pháp này làm việc cho tôi. – Houman

1

Người đúng là:

FB.getLoginStatus(function(response) { 

      if (response.status === 'connected') { 

      alert(response.session.access_token); 

      } 
    }); 
Các vấn đề liên quan