Как вы включаете хэштеги в текст ссылки Twitter share?

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

например:

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

I быстро посмотрел на форумах Twitter и узнал, что символ хэша " # " не может быть частью url-адреса общего доступа.
On https://dev.twitter.com/discussions/512#comment-877 было сказано, что:

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

и

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

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

www.twitter.com/share?url=www.example.com&text=I + am + еда + %23branstonpickel + прямо сейчас
Текст твита вышел как"Я ем %23branstonpickel прямо сейчас ' буквально включая %23 вместо преобразования его в хэш.

извините за вопрос waffely, но кто-нибудь знает, что я делаю неправильно?
Любая обратная связь была бы очень признательна :)

6 ответов


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

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


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

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


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

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

приведет к "я ем branston Пикель прямо сейчас #branstonpickle"

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

Ура

Тоби


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


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


для url с 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));