facebook - 如何获取知道线程 ID 的消息线程 URL?

标签 facebook api facebook-graph-api facebook-fql

How can I construct a link to view a message on facebook.com if I have the message id问题,但没有答案。如果我使用/me/inbox API 端点获得线程的 ID 并需要将用户重定向到显示该线程的 Facebook 本身,该怎么办?我如何构建 URL。似乎有类似 http://www.facebook.com/messages/?action=read&tid=id.143666952390138 的网址其中 thread id 是最后的数字。但也有一些陌生的网址,如 http://www.facebook.com/messages/?action=read&tid=27726d81656e4c07ae5654116cccb724以前的规则不起作用的地方。 是否有使用 Graph API 或 FQL 获取线程 URL 的解决方案?

最佳答案

如果您拥有的 id 是一个字符串对象(可能是一个 guid),这是来自 Facebook 的旧消息系统存储结构。现在他们已经更新到一个新的存储结构,需要将旧的迁移到新的

所以你有一个相当简单的检查:

如果线程 id 是一个 long (Int64/BigInt),那么你有一个新线程并且可以使用 http://www.facebook.com/messages/?action=read&tid=id.THREAD_ID

如果线程 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;

关于facebook - 如何获取知道线程 ID 的消息线程 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9051642/

相关文章:

javascript - 从 Facebook 上的 JavaScript 文件 (melonJS) 游戏调用 Python 函数 (Flask)

facebook - 使用 Facebook API 获取页面的所有照片

使用 Swagger 的 Spring REST API 文档

java - OAuthException : Error validating verification code

android - 如何从 Facebook SDK android 获取实时收件箱和通知

ios - 我可以*检测*用户使用Facebook SDK首次登录应用程序的时间吗?

android - 如何在 android 中使用 facebook 成功登录后重定向另一个 Activity ?

javascript - 检查用户是否喜欢页面

facebook - 发布游戏成就 - 无效 token 错误 : 'An ID has already been specified'

node.js - Facebook 广告事件 Nodejs