2009-03-05 27 views
10

Tôi đang sử dụng Facebooker với Rails để kết nối ứng dụng của tôi với Facebook. Tôi có thể hướng người dùng thông qua quá trình ủy quyền và thông qua quá trình cấp quyền truy cập ngoại tuyến vào ứng dụng của tôi.Bắt offline_access để làm việc với Facebook

Làm cách nào để truy cập thông tin ngoại tuyến? Có cách nào để yêu cầu session_key không hết hạn mà tôi có thể sử dụng sau này, miễn là người dùng đã không thu hồi quyền cho ứng dụng của tôi trên Facebook?

Bất kỳ trợ giúp nào được đánh giá cao. Tư vấn không cần phải là đường ray cụ thể.

Trả lời

0

EDIT: apparently, cấp "offline_access" vẫn cấp cho bạn (và sẽ tiếp tục làm như vậy) khóa phiên vô hạn. chỉ cần lưu khóa đặc biệt này và sử dụng nó trong cuộc gọi của bạn đến Status.get, v.v. xem here cho ví dụ mã (PHP).

http://wiki.developers.facebook.com/index.php/New_Design_User_Login:

nhiều API cuộc gọi không còn đòi hỏi phím phiên

vì vậy nếu ứng dụng của bạn được cấp offline_access, bạn có thể sử dụng API gọi listed here mà không có một session_key.

Và chúng tôi đang thay đổi nhiều phương pháp, do đó bạn sẽ không cần một khóa phiên để làm một cái gì đó khi người dùng đang ẩn, thích gửi thông báo.

+0

Cảm ơn thông tin về các chức năng không yêu cầu khóa phiên. Rất tiếc, các phương thức tôi cần yêu cầu session_key không hết hạn. – Mattew

+0

phương pháp nào sẽ là? –

+0

Phương thức User.getSession. Tôi đang cố truy xuất luồng cập nhật trạng thái của họ. – Mattew

2

Khi bạn yêu cầu và được cấp, truy cập ngoại tuyến khóa phiên bạn nhận được trong tham số HTTP POST từ Facebook (fb_sig_session_key) sẽ không hết hạn.

Bạn có thể kiểm tra bạn có một khóa như vậy bằng cách kiểm tra tham số fb_sig_expires, nếu đây là "0" thì khóa phiên không hết hạn.

Nếu bạn có một auth_token sau đó bạn có thể gọi getSession để có được khóa phiên và kiểm tra hết hạn lĩnh vực:

var auth = _auth.getSession(AuthToken); 
string sessionKey = auth.session_key; 
long uid = auth.uid; 
bool expires = auth.expires > 0; 
+2

Xin chào Mark - cảm ơn thông tin. Bạn có biết liệu khoá phiên có thay đổi sau khi bạn được cấp quyền truy cập ngoại tuyến không? Trong Facebooker, khóa phiên tôi nhận lại có vẻ giống như khóa tôi đã bắt đầu và nó hết hạn. Matt – Mattew

0

Khi bạn nhận được ẩn cho phép truy cập từ một người sử dụng, các trick là để gọi với một filter_key tham số của 'mạng'.

Trong PHP, đó là:

$feed = $facebook->api_client->stream_get($uid, '', '', '', 20, 'network', ''); 

Hãy thử nó, nó hoạt động ....

1

Tôi chỉ cần thực hiện một tutorial trên blog của tôi với từng bước giải thích về cách truy cập ngoại tuyến của người sử dụng dữ liệu. Nó giả định bạn đang làm việc với RoR và plugin Facebooker.

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