Как вы включаете хэштеги в текст ссылки на Twitter? - PullRequest
32 голосов
/ 03 февраля 2012

Я пишу сайт с пользовательской кнопкой твита, которая использует функцию www.twitter.com / share , однако проблема, с которой я сталкиваюсь, заключается в том, чтобы включить хеш-символы '#' в текст твита.

Например:

http://www.twitter.com/share?url=www.example.com&text=I+am+eating+#branstonpickel+right+now
Текст твита выглядит как « Я ем » и пропускает хэш и все после.

Я быстро просмотрел форумы в Твиттере и узнал, что хеш-символ '#' не может быть частью URL-адреса общего ресурса.
На https://dev.twitter.com/discussions/512#comment-877 было сказано, что:

Хеши - это специальные символы в URL-адресе (они идентифицируют фрагменты документа), поэтому они и все остальное не отправляются на сервер.

и

вам нужно URLEncode, так что используйте% 23

Когда я попробовал 2-й пункт в моей тестовой ссылке:

www.twitter.com / акция? URL = www.example.com и текст = I + ат + питание +% 23branstonpickel + правый + в настоящее время
Текст твита вышел так: « Я сейчас ем% 23branstonpickel » буквально, включая% 23, вместо того, чтобы преобразовать его в хеш.

Извините за вопрос вафельный, но кто-нибудь знает, что я делаю не так?
Любая обратная связь будет принята с благодарностью :) 1033 *

Ответы [ 6 ]

71 голосов
/ 13 декабря 2012

Похоже, это базовая настройка:

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 hashtags. В настоящее время это исправлено.

51 голосов
/ 25 марта 2014

вы можете использовать% 23 вместо хеша (#) в URL, например:

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

3 голосов
/ 08 февраля 2012

Я могу ошибаться, но я думаю, что хештег должен быть передан как отдельная переменная, которая появится в конце вашего твита, т.е.:

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

приведет к "Я ем бранстон пикел прямо сейчас #branstonpickle"

На отдельной ноте, я думаю, что пикель должен быть рассолом!

Приветствия

Toby

2 голосов
/ 29 июля 2014

Если вы используете 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

1 голос
/ 27 октября 2016

используйте encodeURIComponent для кодирования URL

0 голосов
/ 08 февраля 2018

Для URL с line jump, #, @ и специальным юникодом в нем работает следующее:

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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...