-1

我正在尝试获取当前酒店价格的列表,但我的 API 密钥无法正常工作。我已经用了几天了,所以我知道它不是太新。我什至尝试了文档中的示例(在确定日期之后):

http://partners.api.skyscanner.net/apiservices/hotels/liveprices/v2/UK/EUR/en-GB/27539733/2016-12-04/2016-12-10/2/1?apiKey=myKey

虽然它适用于演示密钥,但它不适用于我的。我还在用于测试 Python 的 ec2 micro 上进行了尝试,并得到了 u'{"errors":["ApiKey invalid"]}' 的响应:

SKY_SCAN_URL = "http://partners.api.skyscanner.net/apiservices/hotels/liveprices/v2/"
sky_key = get_sky_scan_key()
def get_hotels(request):
        entityid = request.GET['entityid']
        checkindate = date_formatter(request.GET['start'])
        checkoutdate = date_formatter(request.GET['end'])
        rooms = request.GET['rooms']
        guests = request.GET['guests']
        FINAL_SKY_URL = "%s/%s/%s/%s/%s/%s/%s/%s/%s/?apiKey=%s" % (
            SKY_SCAN_URL, 'US', 'USD', 'en-US', entityid, checkindate, checkoutdate, guests, rooms, sky_key)

        sky_response = requests.get(FINAL_SKY_URL)

此函数输出一个带有如下 URL 的 get 请求: http ://partners.api.skyscanner.net/apiservices/hotels/liveprices/v2//US/USD/en-US/20.7983626,-156.3319253-latlong/2016- 09-07/2016-09-14/1/1/?apiKey=myKey

任何关于可能出现的问题的建议都会很棒,谢谢!

编辑:更具体地说,我正在寻找我的 API 密钥无效的原因。我不熟悉 skyscan,虽然我通过单击 travel api 从 skyscanner 仪表板添加了一个应用程序,并将密钥复制到我的项目中并直接复制到一个有效的 url,但我的密钥显示为错误。我需要考虑任何其他步骤或事项吗?

4

4 回答 4

0

我不知道您是如何创建 URL 的,但似乎不应该那样构建。(很可能是由于他们的误导性文件)

这个:

http://partners.api.skyscanner.net/apiservices/hotels/liveprices/v3/?apiKey=myKey&checkoutdate=2016-09-14&checkindate=2016-09-07&currency=USD&rooms=1&entityid=20.7983626%2C-156.3319253-latlong&local=en-US&market=US&guests=1

应该:

http://partners.api.skyscanner.net/apiservices/hotels/liveprices/v3/US/USD/en-US/20.7983626,-156.3319253-latlong/2016-09-07/2016-09-14/1/1/?apiKey=myKey

你的代码应该是这样的:

SKY_SCAN_URL = "http://partners.api.skyscanner.net/apiservices/hotels/liveprices/v3/"
FINAL_URL = "%s/%s/%s/%s/%s/%s/%s/%s/%s/?apiKey=%s" % (SKY_SCAN_URL, market, currency, locale, entityid, checkindate, checkoutdate, guests, rooms, apiKey)

sky_response = requests.get(FINAL_URL)

我还建议你在这里做一些测试。

于 2016-09-07T17:17:03.460 回答
0

自 2017 年 4 月以来,skyScanner 开始重新设计其酒店 API,从而停止所有正在进行的对实时定价 API 的 API 调用:https: //support.business.skyscanner.net/hc/en-us/articles/209452689-Why-is- my-API-key-returning-no-results-for-hotels- 酒店和航班缓存定价和浏览服务仍然有效,但我不确定它是否足以满足您的业务案例。

于 2017-07-20T18:53:42.653 回答
0

截至 17 天前,来自他们的帮助网站 - https://support.business.skyscanner.net/hc/en-us/articles/209452689-Why-is-my-API-key-returning-no-results-for-酒店-

“我们的酒店 API 目前正在重新设计,目前无法访问。对于任何不便,我们深表歉意,当新的 API 准备好使用时,我们将更新 Skyscanner for Business 网站,因此请返回那里查看更新。”

不清楚何时改变。

于 2016-09-13T15:29:54.350 回答
0

Skyscanner 似乎最近更新了他们的酒店 API,文档可以在这里找到:https ://skyscanner.github.io/slate/#hotels-live-prices

于 2017-08-11T07:33:00.963 回答