我弄乱了2个问题&还没弄明白。
1 - 我试图在网站上放置一个框,显示特定主题标签的所有推文。默认的Twitter嵌入式时间轴小部件不起作用 - 因为我需要显示 ALL 这里显示的推文:
https://twitter.com/search/realtime?q=%2323Dec&src=typd
我尝试创建一个小部件,但是对于标签 - #23Dec&它给出了这段代码:
<a class="twitter-timeline" width="300" height="500" href="https://twitter.com/search?q=%2323Dec" data-widget-id="279943570356584449">Tweets about #23Dec</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>
我将href="https://twitter.com/search?q=%2323Dec"
替换为href="https://twitter.com/search/realtime?q=%2323Dec&src=typd"
,但仍无法正常工作....
我该怎么做才能提取所有推文?并把它放在自动更新的网站上?
2 - 其次是,我该如何设计呢?因为我在给定的脚本中找不到任何样式表,我可以用自定义样式表覆盖?
请帮助我....
答案 0 :(得分:2)
我认为这可能会对你有所帮助..注意搜索参数obj是如何构建的,并且只是传递它。您将看到一个用于标签搜索的输入框,以及如何从区域设置趋势主题中提取它们。
嘿伙计们,我把一个很好的JS小提琴放在一起,在处理Twitter API时应该回答你所有的问题。 webapp抓取趋势区域设置,并允许您深入查看趋势主题,然后查看其中的推文。
我还包括一个标准的Twitter搜索提交框,所以以一种奇怪的方式,这是一个准系统的Tweetdeck客户端供您检查。另外,为了推动新Jquery库的改编,我使用了1.91来实现新的live.bind点击事件语法。
享受
http://jsfiddle.net/jdrefahl/5M3Gn/
function searchTwitter(query) {
$.ajax({
url: 'http://search.twitter.com/search.json?' + jQuery.param(query),
dataType: 'jsonp',
success: function (data) {
var tweets = $('#tweets');
tweets.html('');
for (res in data['results']) {
tweets.append('<div>' + data['results'][res]['from_user'] + ' wrote: <p>' + data['results'][res]['text'] + '</p></div><br />');
}
}
});
}
$(document).ready(function () {
function getTrendsByID(id) {
$.ajax({
url: 'http://api.twitter.com/1/trends/' + id + '.json',
dataType: 'jsonp',
success: function (data) {
$.each(data[0].trends, function (i) {
});
}
});
};
function getLocales() {
$.ajax({
url: 'https://api.twitter.com/1/trends/available.json',
dataType: 'jsonp',
success: function (data) {
var locales = $('ul#locales');
locales.html('');
$.each(data, function (i) {
localeID[i] = data[i].woeid;
$('ul#locales').append('<li>' + data[i].name + '</li>');
});
}
});
};
function getTrends(id) {
$.ajax({
url: 'https://api.twitter.com/1/trends/' + id + '.json',
dataType: 'jsonp',
success: function (data) {
var trends = $('ul#currentTrends');
trends.html('');
$.each(data[0].trends, function (i) {
$('ul#currentTrends').append('<li>' + data[0].trends[i].name + '</li>');
});
}
});
};
// Event Handlers
$(document).on("click", "#locales li", function () {
var $this = $(this);
var localesHdr = $('#currentTrendsCont h3');
var tweets = $('#tweets');
var trendsHdr = $('#tweetsCont h3');
trendsHdr.html('');
tweets.html('');
localesHdr.html('');
$('#currentTrendsCont h3').html($this.text());
getTrends(localeID[$this.index()]);
});
$(document).on("click", "#currentTrends li", function () {
var $this = $(this);
var trendsHdr = $('#tweetsCont h3');
trendsHdr.html('');
$('#tweetsCont h3').html($this.text());
var params = {
q: $this.text(),
rpp: 10
};
searchTwitter(params);
});
$('#submit').click(function () {
var trendsHdr = $('#tweetsCont h3');
var trends = $('#currentTrends');
var local = $('#currentTrendsCont h3');
local.html('');
trendsHdr.html('');
trends.html('');
$('#tweetsCont h3').html('search query: '+$('#query').val());
var params = {
q: $('#query').val(),
rpp: 10
};
searchTwitter(params);
});
// Globals
var localeID = new Array();
// Init
getLocales();
});