33

我正在编写一个带有自定义推文按钮的网站,该按钮使用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 而不是转换它到哈希。

抱歉这个问题很奇怪,但有谁知道我做错了什么?
任何反馈将不胜感激:)

4

8 回答 8

82

看起来这是基本设置:

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 个主题标签。目前这是固定的。

于 2012-12-12T22:09:25.607 回答
56

您可以在 url 中使用 %23 代替哈希 (#),例如

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

于 2014-03-25T10:55:03.680 回答
3

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

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

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

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

干杯

托比

于 2012-02-08T16:09:14.073 回答
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'
)); ?>

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

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

于 2014-07-29T10:05:59.640 回答
1

使用 encodeURIComponent 对 url 进行编码

于 2016-10-26T21:42:10.293 回答
0

网址代码

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

于 2020-01-03T06:56:06.490 回答
0

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));
于 2018-02-08T12:24:41.543 回答
0

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

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

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

于 2021-12-01T16:49:45.180 回答