【HMS Core】华为地图服务调用接口403问题

发布时间 2023-09-14 11:01:23作者: Mayism123
【关键字】

HMS、地图服务、403

 

【问题描述】

有开发者反馈在集成地图服务与企业版地图服务,使用js模式,能正常加载地图,但是调用接口siteService.searchByText(request, function (result, status) 返回Status Code:405 返回结果returnCode : "403" returnDesc : "REQUEST_DENIED"

cke_141.png

地图服务,js模式下,调用关键字搜索接口,返回错误码403,REQUEST_DENIED。并且cp已经开启了地图服务,咨询为什么还是报错。

cke_141045.png​​

cke_10309.png

【解决方案】

一、

1、如果是Android类应用,如果地图服务是正常打开的话 请检查一下agconnect-server.json文件中是否有包含api_key字段。

cke_152355.png​​

2、或者查看一下是否有使用MapsInitializer.setApiKey("Your API key")代码设置 APIkey, 如果有使用的话 也需要保证API Key是正常的才行。

二、

Cp反馈使用的不是后端代码开发,直接使用的是javascript模式开发的,没有agconnect-server.json这个文件。是在html中引入地图js,并且apikey也是进行过编码的,地图能加载出来,也能在地图上做标记,如下图

cke_162279.png​​

问题出在调用根据关键字查询的接口返回403的错误码:

cke_172270.png​​

这种情况需要进行如下确认:

1、这个错误码的意思是 APPID没有调用权限,因为这边拿不到API_KEY所以没办法直接看。

cke_66487.png

2、可以检查三个地方:

a、第一个是加载地图和查找使用的api_key是否是同一个。正常来说地图能加载 搜索也应该可以使用的;

b、第二个是您可以查一下这个API_KEY对应的项目是否已经打开了地图服务和位置服务等相关的API,下图这三个都需要打开。

cke_182300.png​​

c、第三个是如果账户类型是企业用户的话, 可以升级到付费档。

cke_192359.png​​

3、除了以上方式之外 ,如果还是不行,可以F12 看一下Response Headers里面是不是有其他什么信息。

cke_202464.png​​