【发布时间】:2011-10-02 03:14:11
【问题描述】:
我想在 Twitter 上发布同一链接的多个版本,但我想在它们访问我的服务器时使用唯一标识符捕获它们。
Twitter 部分为此设计了一种机制,例如,如果我将 www.example.com 发布到 Twitter 消息中,Twitter 将通过 301 重定向自动将其解析为以 t.co 开头的自定义 URL。
我想捕获这个重定向的 URL,这样我就可以为 Twitter 上的类似链接提供一个唯一标识符。
有办法吗?或者有没有更好的方法来处理这个问题?
(我正在寻找 PHP/JS 中的解决方案,或者如果需要任何语言的任何可能方式)
编辑:链接需要在 Twitter 中完全相同,不能在链接上包含查询参数或哈希。
EDIT2: 进一步调查,如果 t.co 链接是归属于同一个人资料的同一链接 url,它将保持不变。例如,同一 Twitter 个人资料上的两个www.example.com 链接将产生相同的 t.co 链接,但如果将其归因于另一个个人资料,则 t.co 链接将有所不同。我想这意味着即使上述问题有解决方法,仍然无法区分同一 Twitter 配置文件服务器端上的完全相同的链接。
EDIT3 12/26/11 有趣的是 t.co 区分 http:// 和 https 因此理论上您可以在同一个人资料上“显示”两个相同的链接并且它们在 Twitter 中看起来物理上相同,但 t.co 重定向链接会有所不同。它将链接到 http 和 https 版本。
- 最终,我要做的是找出在不借助 URL 参数的情况下访问我的服务器的引用链接的推文 ID。
【问题讨论】:
-
您的意思是要找出访问您的服务器时使用了哪个
t.co链接?如果是这样,为什么不只看推荐人? -
当您在 Twitter 上发帖时,您会收到 tweet_id,您可以在推文中查询此 tweet_id。我相信他们会返回修改后的链接,这是一种获取它并将其与您的链接匹配的正则表达式的方式。或者我没看懂这个问题。无论如何,有趣的案例,+1 的问题
-
我确实使用
$_SERVER['HTTP_REFERER']和document.referrer查看了推荐人。它只是在阅读 twitter.com。通过 Fiddler,我看到它被重定向了两次——首先是 t.co,然后是 scribe.twitter,但这些信息都不可用。我实际上想知道是否有一种方法不仅可以获取 t.co,还可以通过 twitter.com 以外的方式以编程方式获取任何信息,因为这对案件有很大帮助。 -
Darhazer:谢谢,我想到了这一点,但我不会事先知道 Tweet ID。如果我查询我的链接,我将获得与推文 i.d 相关联的唯一 t.co 链接,这很棒,但我仍然不知道其中哪个是当时实际链接到该网站的链接。
标签: php javascript redirect twitter referer