我試圖根據用戶的經度和緯度使用Yelp API獲取當地餐館。麻煩的是我很確定如何做到這一點。看看我需要從中檢索數據的頁面,它說這個類型是text/plain。我可以使用Ajax來做到這一點,否則我將無法使用它,因爲它是一個不同的域名?JSON和Yelp API入門
我可以使用的file_get_contents做到這一點在PHP沒有問題的(),但該網站使用ASP內置。在asp中有沒有類似的功能?我可以使用中間頁面作爲獲取和輸出數據的代理。
我試圖根據用戶的經度和緯度使用Yelp API獲取當地餐館。麻煩的是我很確定如何做到這一點。看看我需要從中檢索數據的頁面,它說這個類型是text/plain。我可以使用Ajax來做到這一點,否則我將無法使用它,因爲它是一個不同的域名?JSON和Yelp API入門
我可以使用的file_get_contents做到這一點在PHP沒有問題的(),但該網站使用ASP內置。在asp中有沒有類似的功能?我可以使用中間頁面作爲獲取和輸出數據的代理。
我最終使用了一個從Yelp抓取頁面並輸出JSON的中間頁面。下面是一個代碼片段:
SET XmlObj = Server.CreateObject("Microsoft.XMLHTTP")
XmlObj.open "POST", url, FALSE
XmlObj.send
Response.write(XmlObj.responseText)
在我的我用的Ajax從我的中間頁搶輸出,然後JavaScript來的JSON並輸出結果進行解碼原始頁面。
它工作正常,但我確定有更好的方法。
您可以在Classic ASP中完成整個任務,而無需使用任何其他語言或頁面。您將需要一件事 - 有一個名爲JSON2.ASP的庫,您需要解析結果。你可以找到更多關於它在這裏:
http://zend.lojcomm.com.br/entries/classic-asp-json-revisited/
https://github.com/nagaozen/asp-xtreme-evolution/blob/master/lib/axe/classes/Parsers/json2.asp
一旦你有了這個,你可以得到Yelp的結果,並在傳統的ASP容易解析。我正在用API 1.0來做這件事,因爲它更容易一些,但如果你確定的話,你可以用它作爲API 2.0中的一個起點。
下面是將返回餐館搜索結果的代碼。您當然需要填寫您的API代碼,其中YWSID位於下面的URL中。我將結果輸入到一個數組中,然後從數組中創建一個表以顯示在頁面上,但是隻要有數據,您就可以隨意使用它。
<!--#include file="JSON2.asp"-->
<%
set xmlHTTP = server.createobject("MSXML2.ServerXMLHTTP.6.0")
xmlHTTP.open "GET", "http://api.yelp.com/business_review_search?location=Clare%20Ireland&ywsid=XXXXXXXXXX&category=restaurants", false
xmlHTTP.send()
RawFeed = xmlHTTP.ResponseText
Set RawResults = JSON.parse(join(array(RawFeed)))
For Each YelpFeed In RawResults.Get("businesses")
If YelpFeed.Get("is_closed") = "False" Then
Response.write YelpFeed.Get("name") & "<br>" & vbNewLine
Response.write YelpFeed.Get("rating_img_url") & "<br>" & vbNewLine
Response.write YelpFeed.Get("address1") & "<br>" & vbNewLine
Response.write YelpFeed.Get("phone") & "<br>" & vbNewLine
Response.write YelpFeed.Get("photo_url") & "<br>" & vbNewLine
Response.write YelpFeed.Get("review_count") & "<br>" & vbNewLine
End If
Next
Set RawResults = nothing
%>
您是否有鏈接到您正在查看的Yelp API頁面? – 2010-07-12 20:10:50
僅供參考,您將您的Yelp鑰匙留在那裏。我意識到這已經持續了一年多了,所以如果有人想濫用它,它已經發生了。 – dguaraglia 2011-08-24 00:10:49