【关键字】
HMS、地图服务、403
【问题描述】
有开发者反馈在集成地图服务与企业版地图服务,使用js模式,能正常加载地图,但是调用接口siteService.searchByText(request, function (result, status) 返回Status Code:405 返回结果returnCode : "403" returnDesc : "REQUEST_DENIED"
地图服务,js模式下,调用关键字搜索接口,返回错误码403,REQUEST_DENIED。并且cp已经开启了地图服务,咨询为什么还是报错。
【解决方案】
一、
1、如果是Android类应用,如果地图服务是正常打开的话 请检查一下agconnect-server.json文件中是否有包含api_key字段。
2、或者查看一下是否有使用MapsInitializer.setApiKey("Your API key")代码设置 APIkey, 如果有使用的话 也需要保证API Key是正常的才行。
二、
Cp反馈使用的不是后端代码开发,直接使用的是javascript模式开发的,没有agconnect-server.json这个文件。是在html中引入地图js,并且apikey也是进行过编码的,地图能加载出来,也能在地图上做标记,如下图
问题出在调用根据关键字查询的接口返回403的错误码:
这种情况需要进行如下确认:
1、这个错误码的意思是 APPID没有调用权限,因为这边拿不到API_KEY所以没办法直接看。
2、可以检查三个地方:
a、第一个是加载地图和查找使用的api_key是否是同一个。正常来说地图能加载 搜索也应该可以使用的;
b、第二个是您可以查一下这个API_KEY对应的项目是否已经打开了地图服务和位置服务等相关的API,下图这三个都需要打开。
c、第三个是如果账户类型是企业用户的话, 可以升级到付费档。
3、除了以上方式之外 ,如果还是不行,可以F12 看一下Response Headers里面是不是有其他什么信息。