2012-05-01 68 views
0

我對編程相當陌生,最近一直在使用Twitter API。從狀態/樣本方法,你將如何閱讀使用JavaScript的下面的URL的內容?使用Javascript閱讀來自Twitter示例的內容

https://stream.twitter.com/1/statuses/sample.json

編輯:也許我會解釋我的意圖。我正在嘗試閱讀Twitter示例數據,每30秒閱讀一次hashtags,然後每30秒將排名前10位的hashtags排序。

的問題是,我甚至不知道如何在第一時間閱讀Twitter的數據..

不是尋找解決辦法,但肯定可以使用一些想法..尤其是對於入門。

+0

小心指點任何東西在推特firehose! – philwinkle

回答

0

你不能。閱讀跨網站腳本。

基本上你需要通過託管服務器代理你的請求。

+0

您當然可以*加載json跨站點。請參閱http://api.jquery.com/jQuery.getJSON/和http://jsfiddle.net/4sBfK/ – philwinkle

+1

從技術上講,你們都稍微關閉,但@arychj在說您無法請求JSON跨站點時是正確的,但是你可以使用JSONP來實現它,這實際上就是你在那裏用你的小提琴和'jsoncallback =?'進行的philwinkle。看看我的答案上面,它應該會告訴你一點關於JSONP ... – jcreamer898

1

您應該能夠使用JSONP,這是從服務器返回的特殊類型的響應。

它基本上將響應包裝在一個匿名函數回調中,並將其返回給腳本標記中的客戶端,從而在響應返回到瀏覽器時調用它。

​$.ajax({ 
    type: 'post', 
    dataType: 'jsonp', 
    url: 'http://twitter.com/status/user_timeline/msdn.json?count=10&callback=?', 
    success: function (data) { 
     console.log(data); 
    }  
});​ 

在Chrome的調試器,你會看到該請求檢查請求的網址...

https://twitter.com/status/user_timeline/msdn.json?count=10&callback=jQuery1706531336647458375_1335842234009&_=1335842234045

和響應的回覆是...

jQuery1706531336647458375_1335842234009(/* data */); 

然後jQuery的包裹腳本標記中的數據並將其附加到主體。

請注意請求中的回調如何與響應中的函數調用匹配。

希望有幫助!

+0

對不起...我無法理解你的代碼..我一定強調我是一個完整的noob ..如何做到我得到這個工作? – fokusfocus

+0

您的示例中的url無法正常工作,因爲它位於https上,但上面示例中的$ .ajax()代碼應該是您需要的全部內容。只需將網址替換爲您想要點擊的網址即可。 'function(data){'中的'data'是來自URL的響應。 – jcreamer898

+0

在Unix終端上你可以使用: [curl https://stream.twitter.com/1/statuses/sample.json? -uAnyTwitterUser:密碼'] 顯示樣本流...我想我正在尋找一種類似的方式來做到這一點在Javascript中 – fokusfocus