跨域读取Twitter微博的代码,是这样写的博文

优采云 发布时间: 2021-05-21 21:18

  跨域读取Twitter微博的代码,是这样写的博文

  我最近才刚开始学习JavaScript,我在教程中看到了有关跨域阅读Twitter微博的代码,其编写方式如下

  window.onload = init;

function init() {

var interval = setInterval(handleRefresh, 3000);

handleRefresh();

}

function handleRefresh() {

console.log("here");

var url = "http://gumball.wickedlysmart.com" +

"?callback=updateSales" + //利用callback回调updateSales

//"&lastreporttime=" + lastReportTime +

"&random=" + (new Date()).getTime();

var newScriptElement = document.createElement("script");

newScriptElement.setAttribute("src", url);

newScriptElement.setAttribute("id", "jsonp");

var oldScriptElement = document.getElementById("jsonp");

var head = document.getElementsByTagName("head")[0];

if (oldScriptElement == null) {

head.appendChild(newScriptElement);

}

else {

head.replaceChild(newScriptElement, oldScriptElement);

}

}

function updateSales(jsonp_sales) {

    var salesDiv = document.getElementById("sales");

    for (var i = 0; i < jsonp_sales.length; i++) {

        var sale = jsonp_sales[i];

        var div = document.createElement("div");

        div.setAttribute("class", "saleItem");

        div.innerHTML = jsonp_sale.name + " sold " + jsonp_sale.sales + " gumballs";

        //salesDiv.appendChild(div);

        if (salesDiv.childElementCount == 0) {

            salesDiv.appendChild(div);

        }

        else {

            salesDiv.insertBefore(div, salesDiv.firstChild);

        }

    }

    if (sales.length > 0) {

        lastReportTime = jsonp_[jsonp_sales.length-1].time;

    }

  所以我想当然我会尝试更改为新浪微博的API,当然您必须先申请它

  

  更换后,我得到了此链接(新浪微博的API接口,现在仅允许读取我的微博帐户的内容,并且只能读取5个微博=-=以后我会努力学习,我自己,让我们抓取数据...)

  var url = "https://api.weibo.com/2/statuses/user_timeline.json?uid=你的ID可以从自己微博链接地址查,是一串数字&access_token=这里是token&callback=updateSales" ;

  我尝试了一下,发现没有成功,所以我使用Firefox进行调试,发现jsonp_sales可能有问题,如下所示

  

  展开,找到

  

  

  换句话说,博客文章存储在jsonp_sales.data.statuses [i] .text中,因此请修改代码

  function updateSales(jsonp_sales) {

var salesDiv = document.getElementById("sales");

var length=jsonp_sales.data.statuses.length;

for (var i = 0; i < length; i++) {

var div = document.createElement("div");

div.setAttribute("class", "saleItem");

div.innerHTML = jsonp_sales.data.statuses[i].text;

salesDiv.appendChild(div);

if (salesDiv.childElementCount == 0) {

salesDiv.appendChild(div);

}

else {

salesDiv.insertBefore(div, salesDiv.firstChild);

}

}

}

  最终成功,以下是在网页上阅读的原创博客文章,尚未处理

  

  从开始学习JavaScript以来,我发现Firefox的调试工具大有帮助。我的技能有限,我仍然需要继续学习

  我希望它对所有人都有帮助

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线