【问题标题】:How do you shorten urls in tweets sent using the Twitter API (php)?如何缩短使用 Twitter API (php) 发送的推文中的 URL?
【发布时间】:2017-07-15 23:25:32
【问题描述】:

我正在使用 Twitter API (php),当通过它发布状态时,它似乎没有使用 t.co 来缩短网址。我读到 t.co 仅在发布推文时使用,而不是用于外部应用程序或网站,但这听起来像是不是“公共使用”的 url 缩短器(例如 bit.ly),但它仅用于在 Twitter 中使用 - 我不认为这意味着它不能通过 API 使用。

我仍然无法确定是否是这种情况,因为一方面,我的 URL 没有缩短,但另一方面我发现了讨论甚至 stackoverflow 问题like this 说无论如何,使用 API 时 url 都会被缩短,即使它们比 url 缩短的长度短(我相信目前是 23 个字符)。

有人可以帮我澄清一下吗?如果在使用 twitter API 时无法使用 t.co 缩短 URL,有人可以向我推荐一个具有 PHP 包装器的良好 url 缩短服务/api 吗?

感谢您的宝贵时间。

【问题讨论】:

    标签: php api twitter twitter-oauth url-shortener


    【解决方案1】:

    查看twitters dev docs on t.co links。该页面上的常见问题解答部分涵盖了您的问题。

    什么时候用 t.co 包裹链接?我需要进行额外的 API 调用吗? 当 Twitter 收到使用 POST statuses/update 的推文或使用 POST direct_messages/new 的直接消息时,链接将被包装。包装的链接将包含在对成功请求的响应中。您无需进行任何额外的 API 调用。

    t.co-wrapped 链接是否总是相同的长度? t.co URL 的最大长度会随时间而变化。每天向 GET 帮助/配置发出请求,并检查字段 short_url_length 和 short_url_length_https 以确定包装 URL 的当前最大长度。我们预计这些值不会经常变化。

    请务必注意,在发布之前,您不一定知道 t.co URL 的长度。将 short_url_length 字段视为 t.co-wrapped 链接的最大可能长度。在设计推文输入框时,最好将所有 URL 视为等于最大可能的 short_url_length。

    当您遇到相互矛盾的信息并且不确定实际情况是什么时,API 文档应该始终拥有最终决定权。通常,它们将是最新的信息来源。

    在推文和直接消息中提交的所有链接,无论长度如何,最终都将使用 t.co 进行包装。

    强调我的。文档中的这一行微妙地暗示缩短过程可能存在延迟。

    【讨论】:

    • 感谢您的链接和建议。不过,我仍然感到困惑,因为当我通过 API 将它们作为消息字符串的一部分提交时,我的链接并没有缩短。我现在使用 bit.ly 作为后备,但如果可以的话,我更愿意使用 t.co。如果这有什么不同,我正在使用 codebird 的 php 包装器,但我认为它不应该。有什么想法吗?
    • 链接页面中还有一些其他的东西引起了我的注意,可以增加一些洞察力。他们说的第一段“最终”所有链接都会被转换。让我认为延迟是可能的。他们还谈到了使用推文实体来解开链接。我还没有看到 codebird 的包装器,但它有可能在返回数据时解开链接。这将是检查的东西。
    • 感谢您的快速回复,很抱歉我没有回复。它现在似乎工作正常,所以我认为这是由于您提到的延迟。感谢您的帮助!
    • 不用担心@poncho 很高兴听到这一切对你有用! :)
    猜你喜欢
    • 2017-04-10
    • 1970-01-01
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 2018-04-17
    • 2013-12-02
    相关资源
    最近更新 更多