如何使用twitter search api生成指向原始tweet对象的链接?

时间:2017-01-22 00:36:07

标签: twitter oauth

我从twitter search/tweets api获得了结果。问题是我试图重新创建一个回到原始推文的链接......通常采用以下形式:

http://twitter.com/{user.screen_name}/status/{id}

问题是,如果某个内容是转发,那么user.screen_name会破坏链接(404),因为转推指向原始推文的ID,而不是推文的转发ID(如果是有意义)...所以对于转推我需要链接为http://twitter.com/{retweeted_user.screen_name}/status/{id}

我无法在响应中看到一个标志,告诉我一个对象是否转发,因为没有实际的"转发"对象

我很惊讶twitter实际上并不是一个简单的metadata.source_url或易于访问的东西,而是我不得不重建Twitter原始推文页面的链接。

2 个答案:

答案 0 :(得分:2)

如果您不介意重定向,请使用https://twitter.com/statuses/{id_str}

答案 1 :(得分:0)

结果https://twitter.com/statuses/{id}工作正常(感谢@pii_ke)

问题是twitter的搜索api返回.id.id_str,而我没有意识到的是大数字在javascript中无法解析。

您可以在此处详细了解:https://dev.twitter.com/overview/api/twitter-ids-json-and-snowflake

...但正是它应该始终使用.id_str并将这些ID号保存为字符串。

(90071992547409921).toString()被解析为'90071992547409920'< - 注意最后丢失的1已成为0?

除了不知道http://twitter.com/statuses/<id_str>

之外,这是我的问题

在我的情况下,我在服务器端的node.js中使用了koa应用程序,并且查询了twitter的API,某个地方尝试将原始.id解析为字符串并丢失了一些内容...使用{ {1}}到处解决了这个问题。