2012-01-29 27 views
5

How can I construct a link to view a message on facebook.com if I have the message id câu hỏi nhưng chưa được trả lời. Điều gì sẽ xảy ra nếu tôi nhận được id của luồng bằng cách sử dụng/me/inbox API endpoint và cần chuyển hướng người dùng tới chính Facebook hiển thị luồng này? Làm cách nào để tạo URL. Dường như có các URL như http://www.facebook.com/messages/?action=read&tid=id.143666952390138 trong đó id luồng là số cuối cùng. Nhưng cũng có một số URL lạ như http://www.facebook.com/messages/?action=read&tid=27726d81656e4c07ae5654116cccb724 trong đó quy tắc trước đó không hoạt động. Có giải pháp nào để nhận URL luồng bằng Graph API hoặc FQL không?Làm cách nào để nhận URL chuỗi thông báo khi biết id chuỗi?

Trả lời

8

Nếu id bạn có là một đối tượng chuỗi (có thể là một guid), điều này là từ cấu trúc lưu trữ hệ thống tin nhắn cũ hơn của Facebook. Bây giờ họ đã cập nhật lên một cấu trúc lưu trữ mới đòi hỏi phải có những cái cũ để được di chuyển vào mới

Vì vậy, bạn có một tấm séc khá dễ dàng:

Nếu thread id là một chặng đường dài (Int64/bigint), sau đó bạn có một chủ đề mới và có thể sử dụng http://www.facebook.com/messages/?action=read&tid=id.THREAD_ID

Nếu thread id là một chuỗi sau đó bạn có một sợi cũ và có thể sử dụng

http://www.facebook.com/messages/?action=read&tid=THREAD_ID

nhiều langu lập trình độ tuổi có hình thức kiểm tra loại giá trị của riêng mình.

var threadId = (string)data.thread_id; 
var longVal = 0L;  
var isLong = Int64.TryParse(threadId, out longVal); 
var threadUrl = (isLong) ? 
    "http://www.facebook.com/messages/?action=read&tid=id." + threadId : 
    "http://www.facebook.com/messages/?action=read&tid=" + threadId; 
+1

Nó sẽ là tuyệt vời nếu tất cả mọi thứ là này đơn giản, nhưng khi yêu cầu/me/hộp thư từ graph api cho 27726d81656e4c07ae5654116cccb724 (cách id nên để đúng cách mở facebook page thread) chủ đề tôi nhận được một 64 bit "id ":" 1956133107397 ". Và nếu tôi sử dụng id từ/me/inbox (64 bit) để tạo url trang chủ, tôi nhận được lỗi "Không tìm thấy thư". Tôi không thể truy xuất id hex dài hơn từ facebook bằng Graph API. – vian

+1

Tôi không biết bạn đã làm gì với các giá trị, nhưng mọi thứ tôi luôn cố gắng, luôn luôn, luôn làm việc bằng cách sử dụng mã tôi đã đăng ở trên. Tất nhiên bạn phải có một thẻ truy cập USER hợp lệ ** với quyền 'read_mailbox' **. Xem: https://developers.facebook.com/docs/reference/api/permissions – DMCS

+0

Tôi có quyền read_mailbox và tôi đã kiểm tra xem nó có hoạt động hay không, nhưng vì một lý do nào đó tôi có thể nhận được id chuỗi dài hex chỉ khi tôi đang sử dụng/tôi/chủ đề kết nối, khi tôi sử dụng/tôi/hộp thư tôi nhận được một id không hoạt động. Sử dụng/me/threads thay vào đó sẽ dễ dàng hơn nếu nó không yêu cầu người dùng trở thành nhà phát triển ứng dụng. – vian

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