利用YQL製作自己的小工具

YQL服務可以實現對網上不同數據源的query,filter,combine(查詢,過濾,合併)。

YQL說明類似SQL。下面的例子就是用YQL說明實現從Flickr上得到一系列text爲cat的圖片。

SELECT * FROM flickr.photos.search WHERE text = "cat"

爲了使用YQL服務,需要使用HTTP GET,把YQL說明作爲URL的參數,例如:

http://query.yahooapis.com/v1/public/yql?q=SELECT * FROM flickr.photos.search WHERE text = "cat"

當實施查詢的時候,YQL服務就會訪問網絡上的數據源,傳輸數據,返回XML或者JSON形式的數據結果。YQL可以使用許多類型的數據源,包括Yahoo!Web services 或者其他的網絡服務,和網絡數據類型例如:HTML, XML, RSS,和Atom.

-----------------------------------下面就來介紹如果利用YQL製作自己的小工具------------------------------------

介紹

這個手冊告訴你怎麼樣製作一個簡單的網絡應用,通過YQL來獲取RSS。YQL的調用在HTML的

script標籤中實現,返回的JSON數據用JavaScript處理。

[color=red]1[/color]、創建一個HTML的網頁new.html

[color=red]2[/color]、複製下面的HTML代碼到new.html,第二個script標籤的src屬性暫時爲空,以後我們會用YQL說明來填入。


<html>
<head><title>YQL and RSS: Yahoo! Top News Stories</title>
<style type='text/css'>
#results{ width: 40%; margin-left: 30%; border: 1px solid gray; padding: 5px; height: 200px; overflow: auto; }
</style>
<script type='text/javascript'>
// Parses returned response and extracts
// the title, links, and text of each news story.
function top_stories(o){
var items = o.query.results.item;
var output = '';
var no_items=items.length;
for(var i=0;i<no_items;i++){
var title = items[i].title;
var link = items[i].link;
var desc = items[i].description;
output += "<h3><a href='" + link + "'>"+title+"</a></h3>" + desc + "<hr/>";
}
// Place news stories in div tag
document.getElementById('results').innerHTML = output;
}
</script>
</head>
<body>
<!-- Div tag for stories results -->
<div id='results'></div>
<!-- The YQL statment will be assigned to src. -->
<script src=''></script>
</body>
</html>


[color=red]3[/color].打開網頁http://developer.yahoo.com/yql/console/ 在show tables那裏輸入:
select title from rss where url="http://rss.news.yahoo.com/rss/topstories"
選擇JSON按鈕
------------------------------------------------------耽誤了幾天,補起來----------------------------------------------------------------------
點擊TEST按鈕,你就能在下面的視圖中看到返回的JSON代碼。

[color=red]4[/color].在YQL的說明中,用“*”代替“title”。點擊TEST,在視圖中將會返回所有的信息,而不只有 title的信息。
[color=red]5[/color].在返回ideJSON中,找到結果對象。需要主要的是,返回的對象保存在數組中,數組的每一項代表一個對象,包括了title,link,description和每一條news article對象。
[color=red]6[/color].點擊Copy URL按鈕。從網頁yql_news_app.html中複製URL到第二個script的屬性裏面。就像下面的代碼一樣:

<body>
<div id='results'></div>
<script src='http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20rss%20where%20url%3D%22http%3A%2F%2Frss.news.yahoo.com%2Frss%2Ftopstories%22&format=json&callback=cbfunc'>
</script>
</body>

注意了,YQL的說明已經是URL形式的編碼,說明了JSON裏面返回的內容。
[color=red]7.[/color]在這個URL的最後,用'top_stories'代替'cbfunc'.新的返回函數top_stories將會在YQL返回JSON後執行。
好了,基本就這些了,運行HTML就能看到結果啦。。
這些都是最基本的,後面還有好多要學的,貌似這段時間又不可能學習了。後面還有服務器什麼的。。。。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章