你如何在Twitter共享链接文本中包含主题标签?

时间:2012-02-03 11:18:06

标签: twitter hyperlink share hashtag

我正在编写一个网站,其中包含使用 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而不是将其转换为哈希值。

对于这个有问题的问题感到抱歉,但是有谁知道这是我做错了什么? 任何反馈将不胜感激:)

7 个答案:

答案 0 :(得分:71)

看起来这是基本设置:

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

这会预先建立一条推文:<text> <url> <hashtags>

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

hashtags参数曾经存在错误......它只显示了第一个n-1个标签。目前这是固定的。

答案 1 :(得分:51)

您可以在网址中使用%23而不是哈希(#),例如

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

答案 2 :(得分:3)

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

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

将导致“我现在正在吃Branston pickel #branstonpickle”

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

干杯

托比

答案 3 :(得分:2)

如果您正在使用PHP,则可以使用以下内容:

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

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

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

答案 4 :(得分:1)

使用encodeURIComponent对url进行编码

答案 5 :(得分:0)

对于包含line jump#@和特殊unicode的网址,以下内容有效:

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));

答案 6 :(得分:0)

urlencode

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