我有一个标准的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中动态切换关键字?
答案 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)。