2013-02-20 33 views
5

Tôi có một ứng dụng có quyền truy cập vào nguồn cấp dữ liệu của người dùng. tôi đã thiết lập cập nhật thời gian thực cho việc áp dụng mỗi hướng dẫn này: http://developers.facebook.com/docs/reference/api/realtime/Nhận dữ liệu sau khi cập nhật theo thời gian thực

Về cơ bản khi một bài viết sử dụng một hành động để thức ăn của họ, tôi nhận được thành công thông tin từ Facebook kêu gọi của Mẹ back link. Thông tin có dạng như sau:

{"object":"user","entry":[{"uid":"629498222","id":"629498222","time":1361371026,"changed_fields":["feed"]}]} 

Rắc rối của tôi bắt đầu ở đó. Mỗi hướng dẫn mà tôi đã đọc về cập nhật thời gian thực kết thúc chính xác tại thời điểm đó, mà không thực sự giải thích cách truy cập dữ liệu thực của bản cập nhật.

Vì vậy, tôi đang thử tất cả mọi thứ, đặc biệt là đoạn mã sau đây, để nhận nguồn cấp dữ liệu của người dùng để tôi có quyền truy cập vào bài đăng mới nhất. Đây là trong tệp php gọi lại của tôi:

$app_token_url = 'https://graph.facebook.com/oauth/access_token?client_id=' 
       .$app_id.'&client_secret='.$app_secret 
       .'&grant_type=client_credentials'; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $app_token_url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$res = curl_exec($ch); 
parse_str($res, $token); 

if (isset($token['access_token'])) { 
    curl_setopt($ch, CURLOPT_URL, 'https://graph.facebook.com/629498222/feed' 
           .'?access_token=' 
           .$token['access_token']); 
    $res = curl_exec($ch); 
    if ($res && $res != 'null') { 
    print_r($res); 
    } 
} 

Kết quả không như mong đợi. Tôi nhận được các bài đăng cho người dùng đó nhưng chỉ khi họ được công khai. Tôi không nhận được tất cả các bài đăng của người dùng đó, mặc dù ứng dụng có quyền truy cập vào luồng người dùng. Bất kỳ ý tưởng tại sao?

Bất kỳ trợ giúp nào được đánh giá cao. Tôi thực sự cần một cách để hoàn thành cập nhật Thời gian thực bằng cách tìm nạp dữ liệu thực tế từ người dùng đã đăng cập nhật.

+0

Bạn không có Mã thông báo truy cập người dùng mở rộng? –

Trả lời

0

Mục đích chính của dịch vụ thời gian thực là cho phép ứng dụng biết khi nào dữ liệu mà chúng đang lưu vào bộ nhớ cache cũ và cần được làm mới. Nó không được thiết kế để trở thành dịch vụ "đăng ký nội dung".

Vì vậy, khi bạn nhận được thông báo, bạn sẽ thực hiện cuộc gọi riêng biệt cho thông tin được cập nhật (ví dụ: khi người dùng đăng nhập lần sau). Cụ thể để đọc từ luồng của người dùng, có thể là trường hợp quyền read_stream không được cấp cho mã thông báo ứng dụng, mặc dù tôi không thể tìm thấy bất kỳ tài liệu xác định nào để xác nhận điều đó. Gần nhất tôi tìm thấy là "Khả năng khác của Mã thông báo truy cập ứng dụng" ở cuối trang này https://developers.facebook.com/docs/opengraph/howtos/publishing-with-app-token/

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