Существует Как создать ссылку для просмотра сообщения на facebook.com, если у меня есть вопрос с идентификатором сообщения , но без ответа.Что если я получил идентификатор потока, используя конечную точку API / me / inbox API, и мне нужно перенаправить пользователя на сам Facebook, показывающий эту тему?Как мне создать URL.Кажется, есть URL-адреса, такие как http://www.facebook.com/messages/?action=read&tid=id.143666952390138, где идентификатор потока - это номер в конце.Но есть также некоторые незнакомые URL, такие как http://www.facebook.com/messages/?action=read&tid=27726d81656e4c07ae5654116cccb724, где предыдущее правило не работает.Есть ли какое-либо решение для получения URL потока с помощью Graph API или FQL?
Если ваш идентификатор является строковым объектом (возможно, guid), это из более старой структуры хранения системы сообщений Facebook.Теперь они обновились до новой структуры хранения, которая требует переноса старых в новую
. Таким образом, у вас есть довольно простая проверка:
Если идентификатор потока длинный (Int64 /BigInt), то у вас есть новый поток и вы можете использовать http://www.facebook.com/messages/?action=read&tid=id.THREAD_ID
http://www.facebook.com/messages/?action=read&tid=id.THREAD_ID
Если идентификатор потока является строкой, то у вас более старый поток и вы можете использовать
http://www.facebook.com/messages/?action=read&tid=THREAD_ID
многие языки программирования имеют свою собственную форму проверки типа значения.
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;