10

Với URL của bài đăng công khai trên Facebook, làm cách nào để tìm đối tượng bài đăng trong API FB Graph? (Secondarily, tại sao rất nhiều người sử dụng nguồn cấp dữ liệu rỗng hoặc gần như trống rỗng khi truy cập thông qua API?)API biểu đồ Facebook: Tìm đối tượng biểu đồ từ URL bài đăng

Chúng tôi muốn để có thể comment on hoặc like một bài thông qua Graph API v2.x , được đưa ra URL của bài. Làm như vậy yêu cầu đối tượng của bài đăng ID, mà chúng tôi có thể thực hiện một số dự đoán về giáo dục, nhưng truy cập đối tượng thực tế thông qua API đã được chứng minh là không đáng tin cậy (hoạt động cho một số bài đăng nhưng không phải người khác).

v2 của API được giới thiệu app-scoped user IDs và ID bài đăng thường có vẻ là có dạng {app-scoped user id} _ {unique post id}. Dưới đây là chi tiết về một số nỗ lực tìm các bài đăng trong API với các kết hợp khác nhau của các ID này (id người dùng toàn cầu, id người dùng ứng dụng có phạm vi và id bài đăng).

OK, hãy thử hướng khác. Chúng tôi sẽ trang qua nguồn cấp dữ liệu của người dùng cho đến khi chúng tôi tìm thấy bài đăng được đề cập. Nó cảm thấy như thế này là nhiều trường hợp sử dụng dự kiến ​​ cho API ...

Để tham khảo, ở đây là the GitHub issue nơi chúng tôi đã theo dõi vấn đề này.

+1

Chính xác là với API v2, không có trường 'tên người dùng' nữa và ứng dụng của bạn sẽ không được phép sử dụng id người dùng toàn cầu để yêu cầu chi tiết người dùng nữa, chỉ là id người dùng có phạm vi ứng dụng. Những gì tôi đang tự hỏi ở đây, là lý do tại sao có cần phải yêu cầu chi tiết bài viết dựa trên một bài viết _URL_ ở nơi đầu tiên? Thông thường, ứng dụng của bạn sẽ hoạt động với dữ liệu mà nó đã yêu cầu qua API trước đó, vì vậy các URL "bên ngoài" như thế này sẽ không được phát ở vị trí đầu tiên. – CBroe

+1

Mục đích là để ai đó đăng câu trả lời hoặc thích trạng thái FB trên trang web cá nhân của riêng họ và sau đó sử dụng ứng dụng để xuất bản lên Facebook. Thông tin chi tiết tại đây: https://www.brid.gy/about#publishing. – kylewm

+0

thử câu trả lời của tôi có thể nó sẽ đưa bạn đi đúng hướng – Prozi

Trả lời

3

Về cơ bản bạn cần read_stream cho điều này (ứng dụng của bạn sẽ không được cấp). Và vâng, ngay cả khi bài đăng công khai, bạn vẫn cần read_stream để có thể nhận quyền truy cập đọc vào tất cả các loại bài đăng.

Bạn có thể dễ dàng chơi với điều này trong Graph API Explorer. Trước tiên, hãy cấp cho ứng dụng của bạn quyền read_stream để nhận id của các mục trong nguồn cấp dữ liệu của bạn - điều này sẽ cung cấp cho bạn id của "id bài đăng id người dùng có phạm vi ứng dụng được định dạng toàn diện". Sau đó, xóa read_stream (bằng cách nhấp vào “Nhận mã thông báo truy cập” và sử dụng nút “Xóa”) và thử một số quyền trong số user_* - và bạn sẽ thấy rằng đối với hầu hết các bài đăng của mình, ngay cả bài đăng công khai, bạn sẽ vẫn chỉ nhận được “Yêu cầu nhận được không được hỗ trợ”, điều đó có nghĩa là bạn không được phép đọc đối tượng đó.

Fe, tôi có một bài công cộng, nơi chia sẻ bài đăng video từ một trang khác trên dòng thời gian của tôi, typevideostatus_typeshared_story, nhưng không phải user_status cũng không user_videos cho phép tôi đọc bài này - chỉ khi tôi cấp read_stream lại , ứng dụng của tôi có thể đọc bài đăng đó. Tương tự với một bài đăng công khai khác thuộc loại status và status_type mobile_status_update - có thể đọc được với read_stream, không phải với bất kỳ quyền nào trong số các quyền user_*.

Tóm lại: Điều bạn muốn đạt được là không thể thực hiện được nữa với API v2 và hạn chế read_stream sẽ chỉ được cấp cho các ứng dụng trên nền tảng không có khách hàng FB chính thức tồn tại.

+0

Cảm ơn bạn đã trả lời, tôi sẽ tiếp tục gửi cho bạn tiền thưởng vì nó hết hạn nếu không. Vì vậy, tôi thực sự nghĩ rằng ứng dụng của chúng tôi là ông nội trong trên read_stream, có vẻ như nó có ít nhất là bây giờ. Bạn có biết điều đó có nên cho phép tôi xem tất cả các bài đăng hay chỉ các bài đăng của bạn bè của tôi hay chỉ là của riêng tôi? – kylewm

+1

Theo https://developers.facebook.com/docs/graph-api/reference/v2.2/người dùng/nguồn cấp dữ liệu/chỉ những bài đăng của những người đã cấp ứng dụng của bạn 'read_stream' sẽ hiển thị cho ứng dụng của bạn khi yêu cầu nguồn cấp dữ liệu của người dùng (đó sẽ là bài đăng của người dùng và bài đăng của người khác trên dòng thời gian của người dùng). Và sau ngày 30 tháng 4 năm 2015, ứng dụng của bạn sẽ không thể yêu cầu mọi người cho bất kỳ sự cho phép nào (ngoài những người dùng cho hồ sơ người dùng, bạn bè và email) mà không có ứng dụng của bạn đang được FB xem xét trước - và 'read_stream' sẽ không được cấp cho bất kỳ ứng dụng nào trên nền tảng mà khách hàng FB chính thức tồn tại. – CBroe

+0

yup, đây là cơ bản cùng một kết luận chúng tôi đã đến trong https://github.com/snarfed/activitystreams-unofficial/issues/26. thở dài. :( – ryan

0

Một một đề xuất là để thực hiện cuộc gọi api để viết bài đăng facebook vì những trở post_id hợp lệ mà bạn có thể sử dụng

Thứ hai, Khi bạn cố gắng https://developers.facebook.com/tools/explorer/256884317673197/?method=GET&path=525575504%2Fposts&version=v2.0&

Bạn có thể thấy rằng bài viết ID của mình không bắt đầu với mình public id như bạn đã viết 525575504_ *

nhưng họ vẫn đặt không được hỗ trợ get yêu cầu

https://developers.facebook.com/tools/explorer/256884317673197/?method=GET&path=10152853212485505_351575675029953&version=v2.0

Thứ ba kể từ khi công việc không thực hiện ở trên là những bài đăng công khai không?

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