2012-03-05 43 views
15

Tôi đang tìm nạp nguồn cấp tin tức của người dùng bằng API Facebook và hiển thị một số dữ liệu trên một trang. Tuy nhiên, tôi đang gặp sự cố với bài đăng trên tường. Dữ liệu được API trả lại coi một bài đăng trên tường là bản cập nhật "trạng thái" của người dùng đăng và dữ liệu không bao gồm trường để cho biết bài đăng trên tường được viết cho ai. Có thể truy vấn một mục để kiểm tra xem nó là một bài tường hay không? Hoặc có cách nào tôi có thể nhận tên của người nhận không?Facebook API - nguồn cấp dữ liệu tin tức với bài đăng trên tường

Đây là mã tôi đang sử dụng để lấy nguồn tin của người dùng:

FB.api('/me/home', function (response) { console.log(response) });

Một bài tường sẽ chỉ cho tôi message (nội dung của các bài tường) và type của status. Ví dụ:

Nếu Oliver viết trên tường John 's, nói: 'Xin chào', Facebook mang lại cho tôi:

{ 
    from: { 
     name: "Oliver" 
    }, 
    message: "Hi", 
    type: "status" 
} 

Không có gì để nói với tôi nó là một bài tường cũng không ai là người nhận là. Kết quả không bao gồm một số dữ liệu tùy ý khác nhưng không có dữ liệu nào giúp (id, created_time, v.v.)

Trả lời

31

Facebook đã khiến chủ đề này quá khó hiểu. Chỉ cần đọc tài liệu của họ về đối tượng người dùng trong API biểu đồ để bạn đoán: http://developers.facebook.com/docs/reference/api/user/

/người dùng/nguồn cấp dữ liệu Tường của người dùng.

/người dùng/nhà Nguồn cấp tin tức của người dùng.

/người dùng/trạng thái Cập nhật trạng thái của người dùng.

Tại sao họ không thể cập nhật trạng thái "tường"/người dùng/tường và "nguồn cấp dữ liệu tin tức"/người dùng/nguồn cấp tin tức "/ user/statusupdates để làm đơn giản tôi sẽ không bao giờ biết!

Vì vậy, để có danh sách các cập nhật trạng thái, hãy thực hiện HTTP Get to http://graph.facebook.com/me/statuses?access_token=ValidUserAccessToken cho người dùng hiện tại.

Để nhận danh sách các mục trong luồng trên tường, hãy thực hiện HTTP Get to http://graph.facebook.com/me/wall?access_token=ValidUserAccessToken cho người dùng hiện tại.

Để nhận danh sách các mục trong nguồn cấp dữ liệu trang chủ, hãy thực hiện HTTP Get to http://graph.facebook.com/me/home?access_token=ValidUserAccessToken cho người dùng hiện tại.

Khi bạn bắt gặp "từ" và bạn tự hỏi nó là ai, "tới" người dùng mã thông báo truy cập bạn đang sử dụng khi gọi /me/.... hoặc nếu bạn gọi với một ID cụ thể /UserId/... thì đó sẽ là người dùng id cho "to".


Một suy nghĩ: Lấy đối tượng hoàn chỉnh từ các đối tượng bảng dòng FQL (developers.facebook.com/docs/reference/fql/stream) và xem nếu có một số thông tin đó mà không phải tiếp xúc qua các đối tượng Graph.

+0

Cảm ơn bạn đã làm rõ. Tôi đang sử dụng '/ me/home', cung cấp cho tôi nguồn cấp dữ liệu tin tức của người dùng. Trong nguồn cấp dữ liệu tin tức đó, nó sẽ hiển thị cho tôi bài đăng trên tường giữa bạn bè.Trong trường hợp đó, "tới" không phải là mã thông báo truy cập của người dùng mà tôi đang sử dụng để thực hiện cuộc gọi, nhưng nó cũng không cho tôi biết đó là ai. Đó chính là vấn đề của tôi. Nếu tôi là ** Bob **, tôi có thể xem bài đăng trên tường từ ** Oliver ** tới ** John ** trong nguồn cấp dữ liệu tin tức của tôi. Nhưng API sẽ không cho tôi biết đó là John. Điều đó có ý nghĩa? –

+2

Lấy đối tượng hoàn chỉnh từ đối tượng bảng FQL dòng (http://developers.facebook.com/docs/reference/fql/stream/) và xem có một số thông tin không được hiển thị thông qua đối tượng Graph. – DMCS

+1

FQL có vẻ là con đường để đi. Câu trả lời FQL cho bạn biết nó có phải là một bài tường hay không. Chỉ có nghĩa là tôi phải nạp lại mã của tôi ... tuyệt vời, nhưng cảm ơn bạn! Nếu bạn có thể cập nhật câu trả lời của bạn để đề cập đến FQL, tôi sẽ đánh dấu nó :) –

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