如何成为腾讯位置服务开发者?如何申请Key?

请参阅:https://lbs.qq.com/guides/startup.html,如有还有问题可以到社区反馈。

腾讯位置服务API的服务调用次数有什么限制,在使用的时候会提示“此Key每秒请求量已达到上限如何处理?

目前我们对每个Key的每个服务接口的调用量的默认值为:

日调用量:10,000次/接口/Key(街景静态图日调用量:200次/天/key)

并发限制:5次/秒/接口/Key

超过日调用量和并发数的开发者,可通过以下途径调整:

1. 对于多频次的相同请求,可通过缓存结果,并定时访问更新的方式,减少对在线服务调用的依赖;

2. 对于切实需要大配额来满足应用需求的,请在 控制台->配额申请中申请你需要的配额;

我们将对您的申请进行评估并进行审批(3个工作日内),审批通过后将会获得您申请的配额。

1个账号可以多少个Key,申请的Key可以删除吗?

目前一个账号可以申请5个Key,暂不支持删除已申请的Key。

WebServiceAPI Key配置中的域名白名单如何使用?

域名白名单适用于浏览器端JSONP方式调用WebserviceAPI服务:
    1. 仅白名单中的域名才可使用此key调用WebService服务
    2. 留空侧不限制调用来源
    3. 每行填写一个域名,填写的域名及其子域名都会同时得到授权,如:qq.com,则qq.com下的子域名map.qq.com也可以使用此key

    非授权域名使用您的key调用WebServiceAPI时会被拒绝,同时会返回本次请求来源域名,以便您更正配置:

WebServiceAPI Key配置中的授权IP如何使用?

用于限制此key的调用来源IP,以防key被盗用,优点:配置简单,无需开发,但IP地址有变化时,必须同时修改配置。
    1. 配置方法:
        a. 每行填写一条,留空则不限制。
        b. 填写单一授权IP,例:202.106.0.99
        c. 填写授权地址段,起始IP-结束IP。例:202.106.0.20-202.106.0.26
    2. 如何准确得知我的IP地址:
        可使用IP定位接口,返回结果中会包含您的IP地址(参考文档
    3. 非授权IP使用您的key调用WebServiceAPI时会被拒绝,同时会返回本次请求来源IP,以便更正配置:

WebServiceAPI Key配置中签名校验如何使用?

与授权IP方式比较,使用SN校验稍有开发量,但不必担心服务器换IP的问题。

选中SN校验后,会生成SecretKey (SK),用于请求地图WebServiceAPI时计算签名,将签名做为参数(sig)附带到请求中,腾讯服务器会在收到请求后,使用相同的方式生成签名,并与请求中附带的签名进行比对,当一致时即为校验通过,反之则拒绝。

SecretKey (SK) 要注意保密,如有泄漏应尽快重新重成。
   


WebServiceAPI签名计算方法

通用概念:
1. 请求路径:调用接口时的路径,如:/ws/geocoder/v1,末尾是否带 / 均可,不做要求
2. SecretKey (SK):在腾讯位置服务控制台 > Key配置中,勾选WebServiceAPI的 SN校验时自动生成的随机字串,用于计算签名(sig)
3. sig:签名计算结果


通过以下示例讲解(本例为调用逆地址解析请求的url):
https://apis.map.qq.com/ws/geocoder/v1?location=28.7033487,115.8660847&key=5Q5BZ-5EVWJ-SN5F3-K6QBZ-B3FAO-*****

GET请求分为:域名,请求路径和参数三个部分,用于签名计算的有:
请求路径:/ws/geocoder/v1
请求参数:location=28.7033487,115.8660847&key=5Q5BZ-5EVWJ-SN5F3-K6QBZ-B3FAO-*****


1. 首先对参数进行排序:按参数名升序(本例结果为key在前,location在后):

key=5Q5BZ-5EVWJ-SN5F3-K6QBZ-B3FAO-RVBWM&location=28.7033487,115.8660847


2. 签名计算(sig):
请求路径+”?”+请求参数+SK进行拼接,并计算拼接后字符串md5值,即为签名(sig):
要求:请求参数必须是未进行任何编码(如urlencode)的原始数据

md5("/ws/geocoder/v1?key=5Q5BZ-5EVWJ-SN5F3-*****&location=28.7033487,115.8660847SWvT26ypwq5Nwb5RvS8cLi6NSoH8HlJX")

本例计算得到结果为:90da272bfa19122547298e2b0bcc0e50


3. 生成最终请求:将计算得到的签名sig,放到请求中(参数名即为:sig):

https://apis.map.qq.com/ws/geocoder/v1?key=5Q5BZ-5EVWJ-SN5F3-K6QBZ-B3FAO-*****&location=28.7033487,115.8660847&sig=90da272bfa19122547298e2b0bcc0e50

注意:计算 sig 要使用原始参数值,不要进行任何编码,但最终发送时的参数,是需要时行url编码的