【问题标题】:How do you include hashtags within Twitter share link text?您如何在 Twitter 共享链接文本中包含主题标签?
【发布时间】:2022-04-22 21:54:05
【问题描述】:

我正在编写一个带有自定义推文按钮的网站,该按钮使用 www.twitter.com/share 功能,但是我遇到的问题是在推文文本中包含井号“#”字符.

例如:

http://www.twitter.com/share?url=www.example.com&text=I+am+eating+#branstonpickel+right+now
推文文本显示为“我在吃”,并省略了哈希和后面的所有内容。

我在 Twitter 论坛上快速浏览了一下,发现哈希“#”字符不能成为分享网址的一部分。
https://dev.twitter.com/discussions/512#comment-877 上有人说:

哈希是 URL 中的特殊字符(它们标识文档片段),因此它们以及随后的任何内容都不会发送到服务器。

你需要对它进行 URLEncode,所以使用 %23

当我在测试链接中尝试第二点时:

www.twitter.com/share?url=www.example.com&text=I+am+eating+%23branstonpickel+right+now
推文文本显示为“我现在正在吃 %23branstonpickel”,字面上包含 %23 而不是将其转换为哈希。

抱歉,这个问题太笼统了,但有人知道我做错了什么吗?
任何反馈将不胜感激:)

【问题讨论】:

    标签: twitter hyperlink share hashtag


    【解决方案1】:

    看起来这是基本设置:

    https://twitter.com/intent/tweet?
    url=<url to tweet>
    text=<text to tweet>
    hashtags=<comma separated list of hashtags, with no # on them>
    

    这将预先构建一条推文:&lt;text&gt; &lt;url&gt; &lt;hashtags&gt;

    上面的例子是: https://twitter.com/intent/tweet?url=http://www.example.com&text=I+am+eating+branston+pickel+right+now&hashtags=bransonpickel,pickles

    主题标签参数曾经有一个错误......它只显示了前 n-1 个主题标签。目前已修复。

    【讨论】:

    • 现在看来“n-1”的bug已经修复了
    【解决方案2】:

    【讨论】:

      【解决方案3】:

      我可能错了,但我认为主题标签必须作为一个单独的变量传递,该变量将出现在推文的末尾,即:

      http://www.twitter.com/share?url=www.example.com&text=I+am+eating+branston+pickel+right+now&hashtag=bransonpickel

      将导致“我现在正在吃布兰斯顿泡菜#branstonpickle”

      另外,我认为泡菜应该是泡菜!

      干杯

      托比

      【讨论】:

      • 11 个月前就这样了! Intent api 现在已经进一步正式化,可以像这样工作:twitter.com/intent/…
      • 布兰森应该是布兰斯顿 :)
      • 最初的问题是关于将 # 字符作为长 URL 的一部分。您提到的选项是添加 twitter #hashtags。
      • 哇,三年前的问题!不,问题是问如何使用内联#hashtag 发推文(即:我现在正在吃#branstonpickel)。
      【解决方案4】:

      如果您使用的是 PHP,则可以使用以下代码:

      <?php echo 'http://www.twitter.com/share?' . http_build_query(array(
          'url' => 'http://www.example.com',
          'text' => 'I am eating #branstonpickel right now'
      )); ?>
      

      这将为您完成所有 URL 编码,并且易于阅读。

      有关 http_build_query 的更多信息,请参阅 PHP 手册: http://us2.php.net/http_build_query

      【讨论】:

        【解决方案5】:

        使用 encodeURIComponent 对 url 进行编码

        【讨论】:

          【解决方案6】:

          对于带有 line jump#@ 和特殊 unicode 的 url,以下工作:

          var lineJump = encodeURI(String.fromCharCode(10)),
          hash = "%23", arobase="%40",
          tweetText = 'https://twitter.com/intent/tweet?text=Le signe chinois '+hans+' '+item.pinyin+': '+item.definition.replace(";",",")+'.'
              +lineJump+'Merci '+arobase+'Inalco_Officiel '+arobase+'CRIparis ❤️?? '
              +lineJump+hash+'Chinois '+hash+'MOOC'
              +lineJump+'https://hanzi.cri-paris.org/',
          tweetTxtUrlEncoded = tweetText+ "" +encodeURIComponent('#'+lesson+encodeURIComponent(hans));
          

          【讨论】:

            【解决方案7】:

            urlencode

            https://twitter.com/intent/tweet?text=&lt;?= urlencode("I am eating #branstonpickel right now"); ?&gt;"

            【讨论】:

              【解决方案8】:

              您可以使用此代码并对其进行修改

              <a href="https://twitter.com/intent/tweet?text=hello%20this%20%23hashtag"> </a>
              

              20% 表示空间 23% 表示标签

              【讨论】:

                【解决方案9】:

                在 JS 中,您可以使用 encoreURIComponent 轻松编码特殊字符。

                (警告:不要使用encodeURI,因为“#”和“@”不会被转义。)

                这是一个带有提及和标签的示例:

                const text = "Hello #world ! Go follow @StackOverflow";
                const tweetUrl = `https://twitter.com/intent/tweet?text=${ encodeURIComponent(text) }`;
                

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2018-05-02
                  • 1970-01-01
                  • 2017-09-08
                  • 2015-08-28
                  • 1970-01-01
                  • 2023-04-05
                  • 1970-01-01
                  相关资源
                  最近更新 更多