Yahoo YQL query with gFlags returns nothing

自闭症网瘾萝莉.ら 提交于 2019-12-10 17:46:28

问题


Using Yahoo YQL when I try to query using gFlags nothing returns. https://developer.yahoo.com/yql/console/?debug=true#h=select+*+from+geo.placefinder+where+text%3D%2237.416275%2C-122.025092%22+and+gflags%3D'R'

Response:

<?xml version="1.0" encoding="UTF-8"?>
<query xmlns:yahoo="http://www.yahooapis.com/v1/base.rng"
    yahoo:count="0" yahoo:created="2016-01-20T16:07:28Z" yahoo:lang="en-US">
    <diagnostics>
        <publiclyCallable>true</publiclyCallable>
        <url execution-start-time="16" execution-stop-time="21"
            execution-time="5" http-status-code="503" http-status-message="Service Unavailable"><![CDATA[http://gws2.maps.yahoo.com/findlocation?pf=1&locale=en_US&offset=15&flags=&q=37.416275%2c-122.025092&gflags=R&start=0&count=100]]></url>
        <user-time>22</user-time>
        <service-time>5</service-time>
        <build-version>0.2.376</build-version>
    </diagnostics> 
    <results/>
</query>

When I remove gFlags, there's a succesfull result. Example: https://developer.yahoo.com/yql/console/?debug=true#h=select+*+from+geo.placefinder+where+text%3D%2237.416275%2C-122.025092%22

I need to use gFlags to access the woeid attribute (from the POI, according to the docs: https://developer.yahoo.com/boss/geo/docs/free_YQL.html)


回答1:


After much playing yesterday, I discovered that the geo.placefinder table returns nothing, but the geo.places table does. So you can change your query to "select * from geo.places(1) where..." Just be aware that the results are formatted slightly differently.

Also, I noticed that when passing in latitude and longitude, be sure to include parentheses around it. E.g. text="(111.11111,222.22222)"

So, to repost your original query with the working places (notice there is no more GFlags parameter and the parentheses around the lat/lng):

https://developer.yahoo.com/yql/console/?debug=true#h=select+*+from+geo.places(1)+where+text%3D%22(37.416275%2C-122.025092)%22




回答2:


Same for me, a query that worked fine now returns null. It seems that the internal call to retreive the woeid from latitude / longitude does not succeed from within the yahoo servers. However, this call works fine from my machine :

http://gws2.maps.yahoo.com/findlocation?pf=1&locale=en_US&offset=15&flags=&q=48.136757%2c-1.622015&gflags=R&start=0&count=100

So, a workaround is to first call the findLocation service, and then, with the woeid, call the weather service. Tried it today and works fine.



来源:https://stackoverflow.com/questions/34904938/yahoo-yql-query-with-gflags-returns-nothing

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!