2012-01-11 27 views
5

Với API đồ thị, tôi xuất bản một câu chuyện bằng cách POST tới kết nối/me/feed. Tôi lấy lại thành công hoặc một kết quả lỗi từ Facebook. Càng xa càng tốt. Đôi khi, API mất một thời gian dài và kết nối hết thời gian chờ. Trong trường hợp đó, tôi không biết chắc chắn nếu yêu cầu thành công thất bại (nghĩa là có thể yêu cầu không bao giờ đến được Facebook, hoặc có thể nó đã thành công và kết quả không bao giờ trả lại cho tôi). Làm thế nào để bạn xử lý tình huống này?Làm thế nào để tránh đăng một bản sao khi xuất bản lên Facebook?

Thêm chi tiết: Tôi xuất bản nhiều bài đăng lên Facebook và Twitter, vì vậy tình huống hết thời gian xảy ra thường xuyên. Với Twitter, giải pháp rất dễ dàng. Nếu yêu cầu lần đầu tiên, tôi chỉ cần thử lại. Twitter phát hiện trùng lặp, vì vậy nếu bài đăng được xuất bản thành công lần đầu tiên, sau đó tôi sẽ nhận được lỗi "trạng thái trùng lặp" trên yêu cầu thứ hai và tôi biết rằng tôi không cần phải thử lại nữa.

Nhưng Facebook không phát hiện trùng lặp, vì vậy nếu tôi thử lại yêu cầu xuất bản, tôi có nguy cơ có hai bản sao của bài đăng được xuất bản lên tường người dùng, điều này không hay. Mặt khác, nếu tôi không thử lại, tôi có nguy cơ có bài đăng chưa được xuất bản. Suy nghĩ?

+0

Xin chào, @Waleed. Bạn cuối cùng đã tìm thấy câu trả lời cho câu hỏi của mình chưa? –

+1

@MichaelChernetsov Tôi chưa có. Có vẻ như không phải là một cách sạch sẽ để làm điều đó. Một ý tưởng tôi nghĩ là đọc dòng thời gian của trang đầu tiên để kiểm tra xem bài đăng có tồn tại ở đó trước khi đăng bài hay không. Điều đó sẽ hiệu quả, nhưng nó không phải là giải pháp sạch mà tôi đang tìm kiếm. –

Trả lời

-2

Tôi lấy lại thành công hoặc một kết quả lỗi từ Facebook.

Hmmm. Khi tôi đăng lên Graph API, tôi lấy lại lỗi hoặc id của bài đăng. Tôi không bao giờ thấy bất kỳ thông điệp thành công nào. Bạn đang sử dụng SDK nào xung quanh API?

Sau một thời gian, API mất nhiều thời gian và thời gian kết nối .

Thông thường khi mọi thứ đang chạy chậm, đó là do không được chỉ định channelUrl. Xem https://developers.facebook.com/docs/reference/javascript/

Điều quan trọng là tệp kênh phải được lưu trong thời gian miễn là . Khi phân phối tệp này, bạn phải gửi các tiêu đề hết hạn hợp lệ với thời gian hết hạn dài. Điều này sẽ đảm bảo tệp kênh là được lưu trong bộ nhớ cache bởi trình duyệt quan trọng đối với trải nghiệm người dùng mượt mà. Nếu không có bộ nhớ đệm thích hợp, giao tiếp tên miền chéo sẽ trở nên rất chậm và người dùng sẽ bị trải nghiệm nghiêm trọng.

+0

Không, DMCS. Câu trả lời này không giúp được gì. Trong khi tôi đánh giá cao nỗ lực này, câu trả lời của bạn thậm chí không gần với những gì tôi đã hỏi và hoàn toàn bỏ lỡ điểm của câu hỏi. –

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