动态替换/重新渲染Twitter搜索Feed

时间:2016-12-22 15:24:53

标签: javascript jquery twitter

我有一个标准的Twitter搜索Feed和一个输入框,用户应输入一个术语并切换Feed以搜索他们输入的内容。我听说您可以通过添加数据属性来更改用户名的嵌入式Feed,但到目前为止,我还没有看到有人报告如何使用搜索Feed执行此操作...

<a class="twitter-timeline" data-dnt="true" href="https://twitter.com/search?q=Christmas" data-search="Christmas" data-widget-id="12345">Tweets about Christmas</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>

到目前为止,js非常简单 -

$('.twitter-timeline').attr('href', 'https://twitter.com/search?q=' + encodeURIComponent($('#search').val())).attr('data-search', encodeURIComponent($('#search').val()));
twttr.widgets.load(); 

所以你可以看到它只是替换a标签和数据属性的href然后尝试调用load()对象上的twttr.widgets函数。这什么都不做。

任何人都知道是否可以在嵌入式Twitter搜索Feed中动态切换关键字?

1 个答案:

答案 0 :(得分:1)

不,那是不可能的。

您可以在运行时使用工厂函数(https://dev.twitter.com/web/javascript/creating-widgets#create-timeline)创建小部件。使用twttr.widgets.createTimeline,您可以定义数据源,但这只能是以下之一:配置文件,赞,列表,集合,URL(并且URL只能是Twitter配置文件,喜欢,列表或集合之一,窗口小部件配置),小部件。

因此,例如用户名的“搜索”工作:

 twttr.widgets.createTimeline(
    sourceType: 'url',
    url: 'https://twitter.com/' + encodeURIComponent( $('#search').val())
    },
    ...

https://jsfiddle.net/user2314737/jba2uqam/

虽然这不起作用:

twttr.widgets.createTimeline(
    {
    sourceType: 'url',
    url: 'https://twitter.com/search?q=' + encodeURIComponent( $('#search').val())
    },
    ...

要进行自定义搜索,您需要使用需要身份验证的API(https://dev.twitter.com/rest/reference/get/search/tweets)。