Кнопка "Поделиться" в Твиттере не пересылает пользовательский текст
Я работаю над сайтом с опцией "Поделиться в Твиттере" для каждого конкретного продукта.
Я следовал инструкциям твиттер-API по обмену твитами, и все отлично работает, кроме пользовательского отображения текста. Например, я хочу, чтобы пользователь написал в твиттере так: "Как вы думаете? Стоит ли покупать это? http://url.etc/ @mywebsite"
но все, что я получаю, когда пользователь пишет в Твиттере, это ссылка: http://url.etc/
Это код:
<script type="text/javascript" src="//platform.twitter.com/widgets.js"></script>
<a target="_blank" href="https://twitter.com/share" data-url="http://bit.ly/twitter-api-announce" data-via="testtest" data-text="What do you think? Should I buy this? " data-count="none" data-counturl="http://groups.google.com/group/twitter-api-announce" >TWITTER</a>
Проблемы, кажется, с опцией data-text.
Есть опыт по этому поводу? Идеи? Спасибо
4 ответа
На Wordpress я просто использовал <a href="https://twitter.com/share?url=google.com&text=your text here">Tweet</a>
Работает как шарм!
Просто используйте ссылку как:
<a href="http://twitter.com/share?related=[your_twitter_account]&via=[your_twitter_account]&lang=[fr]&text=[hello%20world]&url=[www.google.com]">tweet</a>
Просто измените то, что находится между [] (и удалите их), отметьте, что все должно быть RFC (со странными символами, такими как 'пробел', заменен на%20 и т. Д.)
Твиттер предлагает красивую страницу, чтобы сделать кнопки https://about.twitter.com/resources/buttons Но мое решение избегать JavaScript, чтобы заставить дизайн кнопки
Вы можете использовать это:
<a href='https://twitter.com/share?url=google.com&text=Signup>Tweet</a <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src='//platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document,'script','twitter-wjs');</script>
Вы должны закодировать свой текст, прежде чем вставлять его в ссылку. Правильная процедура:
Закодируйте текст с помощью онлайн-инструмента, подобного этому
Поместите результат в HTML-ссылку ( как предлагает @FenixAoras):
<a href="http://twitter.com/share?related=[your_twitter_account]&via=[your_twitter_account]&lang=[fr]&text=[encoded-text]&url=[url]">Share on Twitter</a>
Если вы генерируете свой HTML с помощью php, вы можете использовать функцию urlencode прямо в своем скрипте:
echo "<a href="http://twitter.com/share?text=".urlencode("<your text>")."">Share on Twitter</a>";
Если вы используете WordPress, лучший способ - создать шорткод, поскольку с его помощью вы также можете использовать встроенные функции WordPress:
function tweet_this($atts, $content = null)
{
extract(shortcode_atts(array(
"text" => ''
), $atts));
return "<a href='https://twitter.com/intent/tweet?text=".urlencode( $text." - ".get_the_title()." - ".get_permalink() )."'>Share on Twitter</a>";
}
add_shortcode( 'tweet_this', 'tweet_this' );
(Примечание: приведенный выше код - это всего лишь зацепка, вы можете расширить его, и вам нужно будет протестировать)
Применение:
[tweet_this text="my custom text with #hashtag and @Mention"]
Подтвердите, что вы включили правильные скрипты Twitter. А еще лучше, сгенерируйте свой код кнопки твита из интерфейса разработчика Twitter здесь.. https://about.twitter.com/resources/buttons
Если вы хотите изменить содержимое кнопки твита на лету... например, после загрузки страницы, вам нужно будет создать и вставить свою кнопку твита в HTML DOM динамически.
Некоторое руководство по этому вопросу можно найти здесь.
http://denvycom.com/blog/twitter-button-with-dynamic-custom-data-text-message/
Надеюсь, это полезно.