有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这样的URL,其中线程ID是最后的数字。但也有一些陌生人的网址,如http://www.facebook.com/messages/?action=read&tid=27726d81656e4c07ae5654116cccb724,其中以前的规则不起作用。 有没有解决方案使用Graph API或FQL获取线程URL?如何获得知道线程ID的消息线程URL?
5
A
回答
8
如果你拥有的id是一个字符串对象(可能是一个guid),这是来自Facebook旧的消息系统存储结构。现在,他们已经更新到需要旧的要迁移到新
新的存储结构,所以,你有一个相当简单的检查:
如果线程ID是一个长期(的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;
相关问题
- 1. 如何通过知道线程ID来获取线程的名称?
- 2. 如何获得XMPP聊天线程的线程ID?
- 3. 如何获得线程ID在C#
- 4. 如何获得离线消息的JABBERID
- 5. MongoDB的 - 得到消息线程
- 6. 如何知道何时杀死线程?
- 7. 如何知道界面窗口的id线程?
- 8. 你如何获得线程的进程ID?
- 9. 如何知道线程开始
- 10. 如何知道是谁开始线程
- 11. 如何知道线程已完成
- 12. 从线程获取线程ID
- 13. Qt在主线程中获得线程ID?
- 14. 在线程开始之前获取线程的线程ID
- 15. SQL - 需要查询以获得用户ID所有不同的消息线程
- 16. facebook,Myspace,Twitter API获取消息线程
- 17. 如何创建消息框线程?
- 18. 如何将消息传递给线程
- 19. 如何从线程池中获取线程ID?
- 20. Graphql消息线程设计
- 21. 我如何从我的机器人获得线程的URL
- 22. 如何获得线程的状态?
- 23. 如何获得线程内的RealmList?
- 24. 如何获得具有给定标签ID的线程列表?
- 25. 如何获取Android线程ID?
- 26. 知道线程何时完成
- 27. .NET:如何获得后台线程信号主线程数据?
- 28. 如何获得线程组当前线程处于
- 29. 我们可以在多线程进程的strace输出中获得线程的线程ID吗?
- 30. 如何知道所有线程池的线程是否已完成其任务?
这将是巨大的,如果一切是这样简单,但要求从图形API/ME /收件箱时的27726d81656e4c07ae5654116cccb724(ID应该如何才能正常打开Facebook的线程页)线程我得到一个64位的“ID “:”1956133107397“。如果我使用来自/ me/inbox(64位之一)的id来构造线程页面url,我会得到“No message found”错误。我无法使用Graph API从facebook中检索更长的十六进制id。 – vian 2012-02-04 08:14:03
我不知道你对值做了什么,但我总是尝试使用我上面发布的代码始终工作。当然,你必须拥有一个**有效的用户访问令牌和'read_mailbox'权限**。请参阅:https://developers.facebook.com/docs/reference/api/permissions – DMCS 2012-02-04 09:39:26
我有一个read_mailbox权限,我检查它的工作,但由于某种原因,我可以得到长十六进制字符串ID只有当我使用/我/线程连接,当我使用/我/收件箱我得到一个非工作的ID。如果不需要用户成为应用程序的开发人员,使用/ me/threads会更容易。 – vian 2012-02-07 09:36:50