如何修改定位骗过腾讯服务器,常见问题

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

域名白名单适用于浏览器端JSONP方式调用WebserviceAPI服务:

(1)仅白名单中的域名才可使用此key调用WebService服务

(2)留空侧不限制调用来源

(3)每行填写一个域名,填写的域名及其子域名都会同时得到授权,如:qq.com,则qq.com下的子域名map.qq.com也可以使用此key

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

{

"status": 110,

"message": "请求来源未被授权(本次请求来源为:lbs.qq.com),请检查key配置。"

}

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

用于限制此key的调用来源IP,以防key被盗用,优点:配置简单,无需开发,但IP地址有变化时,必须同时修改配置。

(1)配置填写方法:

进入Key管理界面,找到要设置的Key进入设置界面,启用产品勾选WebServiceAPI后,会出现相应安全设置,点击“授权IP”进行设置

a. 每行填写一条,留空则不限制。

b. 支持填写单一授权IP,例:202.106.0.99

c. 支持授权IP段,起始IP-结束IP。例(IPv4):202.106.0.20-202.106.0.26

b0b5f628ce84fdd5ee327994ee6cbd3a.png

(2)如何准确得知我的IP地址:

首先您可询问您的网络供应商获悉,另外您可以通过IP定位接口,在接口返回结果中会包含您的服务器IP

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

{

"status": 112,

"message": "IP未被授权(本次请求来源IP为:202.106.0.20),请检查key配置。"

}

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

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

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

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

45d7cc297fd8d2cacef46dc1f007d93c.png

4、WebServiceAPI(GET方法)签名计算

(1)通用概念:

a. 请求路径:调用接口时的路径,如:/ws/geocoder/v1,末尾是否带 / 均可,不做要求,但需要保持一致,比如调用路径用了/ws/geocoder/v1,签名计算的时候也要用/ws/geocoder/v1

b. SecretKey (SK):在腾讯位置服务控制台 > Key配置中,勾选WebServiceAPI的 SN校验时自动生成的随机字串,用于计算签名(sig)

c. sig:签名计算结果

通过以下示例讲解(本例为调用逆地址解析请求的url):

(2)GET请求分为:域名,请求路径和参数三个部分,用于签名计算的有:

请求路径:/ws/geocoder/v1

请求参数:location=28.7033487,115.8660847&key=5Q5BZ-5EVWJ-SN5F3-K6QBZ-B3FAO-*****

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

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

b. 签名计算(sig):

请求路径+”?”+请求参数+SK进行拼接,并计算拼接后字符串md5值(字符必须为小写),即为签名(sig):

要求:请求参数必须是未进行任何编码(如urlencode)的原始数据

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

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

c. 生成最终请求:将计算得到的签名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编码的

5、WebServiceAPI和地点云API 的 POST接口(application/json)如何计算签名?

(1)通用概念:

a. 请求路径:调用接口时的路径,如:/place_cloud/data/create,末尾是否带 / 均可,不做要求

b. SecretKey (SK):在腾讯位置服务控制台 > Key配置中,勾选WebServiceAPI的 SN校验时自动生成的随机字串,用于计算签名(sig)

c. sig:签名计算结果

(2)下文以地点云API的 [创建地点数据接口] 为例计算签名:

// POST请求地址

https://apis.map.qq.com/place_cloud/data/create

// 请求头:content-type:application/json

//Post方法提交数据

{

"key":"5Q5BZ-5EVWJ-SN5F3-K6QBZ-*****",

"table_id":"5d405395d230bf1d9416be10",

"data":[

{

"ud_id":"156985",

"title":"海淀区苏州街营业部",

"location":{

"lat":39.983988,

"lng":116.307709

},

"x":{

"price":15.5

}

}

]

}

a. 参数排序:按JSON对象中的一级属性名字符升序排序,本例结果为:data,key,table_id

再将每个一级属性的 Value 转成最短JSON string形式:

data

[{“ud_id”:“156985”,“title”:“海淀区苏州街营业部”,“location”:{“lat”:39.983988,“lng”:116.307709},“x”:{“price”:“no price”}}]

key

5Q5BZ-5EVWJ-SN5F3-K6QBZ-*****

table_id

5d405395d230bf1d9416be10

b. 拼接成Querystring型的字符串:

data=[{"ud_id":"156985","title":"海淀区苏州街营业部","location":{"lat":39.983988,"lng":116.307709},"x":{"price":15.5}}]&key=5Q5BZ-5EVWJ-SN5F3-K6QBZ-*****&table_id=5d405395d230bf1d9416be10

c. 签名计算(sig):

请求路径+”?”+请求参数+SK进行拼接,并计算拼接后字符串md5值(字符必须为小写),即为签名(sig):

要求:请求参数必须是未进行任何编码(如urlencode)的原始数据

md5('/place_cloud/data/create?data=[{"ud_id":"156985","title":"海淀区苏州街营业部","location":{"lat":39.983988,"lng":116.307709},"x":{"price":15.5}}]&key=5Q5BZ-5EVWJ-SN5F3-K6QBZ-*****&table_id=5d405395d230bf1d9416be10KIpUE64TiqLuF2vBJCLOvkFVy0we0Ypp')

本例计算得到结果为:782f2ca97e6592741049823787203e9c

d. 发送请求:

//URL与请求头

POST /place_cloud/data/create?sig=782f2ca97e6592741049823787203e9c HTTP/1.1

Host: sdkgw.noscan.sparta.html5.qq.com

User-Agent: python-requests/2.22.0

Accept-Encoding: gzip, deflate

Accept: */*

Connection: keep-alive

Content-Length: 257

Content-Type: application/json

//Post Body

{"key": "5Q5BZ-5EVWJ-SN5F3-K6QBZ-B3FAO-RVBWM", "table_id": "5d405395d230bf1d9416be10", "data": [{"ud_id": "156985", "title": "\u6d77\u6dc0\u533a\u82cf\u5dde\u8857\u8425\u4e1a\u90e8", "location": {"lat": 39.983988, "lng": 116.307709}, "x": {"price": 15.5}}]}

发送的data里的JSON并不需要是最小形式,可以使用空格。

e. 返回结果:

{

'status': 0,

'message': '成功',

'request_id': 'a98aec8aa0de7a2905ad347d85b188',

'result': {

'count': 1,

'failure': [],

'success': [

{

'id': '5d405d2918d433170478b790',

'row_idx': 0,

'ud_id': '156985'

}

]

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值