Вопрос

У меня есть лента из моего профиля в Твиттере в верхней части сайта, но мне интересно, есть ли способ отфильтровать мои @ответы и показывать только обновления моего статуса?

Спасибо

Это было полезно?

Решение

Если вы используете стандартный веб-код ленты Twitter для Blogger и подобных сайтов, этот фрагмент Javascript поможет вам.Он находится между каналом Twitter и обратным вызовом и удаляет ответы из ответа сервера.

Для значка блога стандартный веб-код Twitter заканчивается двумя <script> теги.Первый предоставляет функцию, которая отображает ваши твиты.Второй запрашивает твиты для отображения.

Добавьте этот скрипт в код своего бейджа перед запросом в Твиттере.Он предоставляет новую функцию filterCallback, которая удаляет @replies из ответа Twitter.

<script type="text/javascript">
  function filterCallback( twitter_json ) {
    var result = [];
    for(var index in twitter_json) {
      if(twitter_json[index].in_reply_to_user_id == null) {
        result[result.length] = twitter_json[index];
      }
      if( result.length==5 ) break; // Edit this to change the maximum tweets shown
    }
    twitterCallback2(result); // Pass tweets onto the original callback. Don't change it!
  }
  </script>

Сам запрос Twitter имеет параметр, который определяет, какую функцию вызывать при получении ответа.В случае с блоггером эта функция называется «twitterCallback2» — вы можете найти ее в веб-коде (найдите callback=twitterCallback2).Для использования нового фильтра необходимо заменить текст twittercallback2 с filterCallback.Фильтр жестко запрограммирован для последующего вызова twitterCallback2 когда это будет сделано.

Обратите внимание: поскольку это уменьшит количество отображаемых твитов, если некоторые ответы от Twitter являются ответами, вам необходимо увеличить параметр count в вызове, чтобы учесть это.Новая функция ограничивает количество отображаемых ответов до пяти — отредактируйте код, чтобы изменить это.

Вот моя запись в блоге об этом: Фильтровать ответы из ленты Twitter

Другие советы

Если вы хотите использовать новые виджеты Twitter, просто добавьте этот фрагмент кода в features: настройка исходного кода виджета:

filters: {
  negatives: /\B@\w{1,20}(\s+|$)/
},

Я взял это с сайта Дастина Диаса по адресу http://www.dustindiaz.com.Дастин Диас — создатель виджета Twitter.

Измените вызов setUser на

setUser('name&exclude_replies=true');

Это своего рода хак, но он помогает

Зависит от того, что вы используете для отображения записей.Если вы используете виджет Twitter, то, скорее всего, нет.Если вы используете какой-либо другой программный способ отображения элементов, вам необходимо предоставить более подробную информацию о том, что вы делаете (язык, пример кода и т. д.), и мы, вероятно, сможем помочь с фильтрацией.

Вероятно, вы захотите использовать регулярное выражение.Что-то вроде:

[a-zA-Z0-9][a-zA-Z0-9]*: @[a-zA-Z0-9][a-zA-Z0-9]*.*

В зависимости от того, как вы форматируете ленту Twitter на своей странице.Это регулярное выражение предполагает, что вы отформатированы примерно так:

username: @username msg txt

Если оно совпадает, не отображайте его.Если оно не совпадает, то отобразите его.:) Если у вас есть теги вместе с текстом, настройте регулярное выражение соответствующим образом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top