为什么我的Bing搜索API新闻返回空字符串?

为什么我的Bing搜索API新闻返回空字符串?,api,rest,search,yql,bing,Api,Rest,Search,Yql,Bing,我订阅了WindowsAzure网站上的免费Bing搜索API。我想做的是在我的网站上添加一个面板,使用纯客户端代码(javascript)来查询Bing搜索Api的新闻结果,我想按相关性排序 为了实现这一点,我找到了这篇有趣的文章,其中讨论了如何用YQL(Yahoo查询语言)存储身份验证信息,并将其用作代理来查询Bing搜索API,网址为: 下面是我所做的: 1) 开发一个YQL开放数据表,其中包含我的Bing键和一个查询参数。以下是XML代码: <?xml version="1.0"

我订阅了WindowsAzure网站上的免费Bing搜索API。我想做的是在我的网站上添加一个面板,使用纯客户端代码(javascript)来查询Bing搜索Api的新闻结果,我想按相关性排序

为了实现这一点,我找到了这篇有趣的文章,其中讨论了如何用YQL(Yahoo查询语言)存储身份验证信息,并将其用作代理来查询Bing搜索API,网址为:

下面是我所做的:

1) 开发一个YQL开放数据表,其中包含我的Bing键和一个查询参数。以下是XML代码:

<?xml version="1.0" encoding="UTF-8" ?>
<table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">
    <meta>
        <sampleQuery>
            select * from {table} where query="washington"
        </sampleQuery>
    </meta>
    <bindings>
       <!-- SearchResponse.News.RelatedSearches.NewsRelatedSearch -->
        <select produces="json">    

            <urls><url>https://a889dc2f-d0d4-4d16-9f4e-401c750deb04:IFU5P1aw5HAFJsMgOoxSyAAQyAh+m5asVkEq3GG9xIU@api.datamarket.azure.com/Bing/Search/v1/Composite?Sources=%27news%27</url></urls>

            <inputs>
                <key id="Query" default="'new york bonds'+NewsCategory='rt_Business'" paramType="query" />
            </inputs>

        </select>                        
    </bindings>
</table>
啊哦。。。我们犯了第一个错误。YQL控制台吃掉它并抛出“无效的JSON文档”。好的,所以我认为控制台不知道如何解析这个查询

好的,那么让我们使用RESTURL来执行查询。网址是:

https://query.yahooapis.com/v1/public/yql?q=use%20%22store%3A%2F%2F6sVu1WUPgFrgFcOv1bH81U%22%20as%20T%3B%20select%20*%20from%20T%20where%20Query%3D%22%27Texas%20bonds%27%26NewsCategory%3D%27rt_Business%27%22%3B&format=json&diagnostics=true
太好了!但这里发生了一些有趣的事情。生成的JSON字符串中的诊断将显示:

“无法从存储器中读取…不是有效的存储器地址。”

我不在乎,只要我有一个好的JSON字符串,我就不在乎。但问题就出在这里。尝试为此查询使用生成的REST URL:

结果是一个空字符串(具有相同的存储url错误)。

为什么?!这是完全相同的查询,但它只是根据相关性而不是日期对新闻结果进行排序

有人知道这到底是怎么回事吗

提前感谢您抽出时间,非常感谢

另外,我试着输入其他密钥id,以使XML代码看起来更好,但这总是会使查询出错。请让我知道,如果你能得到这个工作,我将永远爱你

您认为可能必须使用OAuth来完成吗

https://query.yahooapis.com/v1/public/yql?q=use%20%22store%3A%2F%2F6sVu1WUPgFrgFcOv1bH81U%22%20as%20T%3B%20select%20*%20from%20T%20where%20Query%3D%22%27Texas%20bonds%27%26NewsCategory%3D%27rt_Business%27%22%3B&format=json&diagnostics=true
use "store://6sVu1WUPgFrgFcOv1bH81U" as T;
select * from T where Query="'Texas bonds'&NewsCategory='rt_Business'&NewsSortBy='Relevance'";