使用ArcGIS REST API添加Web Map遇403权限错误求助
解决ArcGIS REST API添加Web Map时的403权限错误(GWM_0003)
刚碰到过类似的问题,这个403报错(GWM_0003)本质是请求的身份或权限不满足创建Web Map的要求,咱们一步步排查:
1. 先确认Token的核心权限和有效性
- 你获取Token时,必须在
scope参数里包含item:create——这是创建新内容的基础权限,要是没加这个,哪怕Token是有效的,也会被拒绝。 - 另外要验证Token的归属:确保Token是你要添加项的那个用户的,不能用管理员Token却填了普通用户的
username(除非你明确加了owner参数且有管理员权限)。 - 可以用
/sharing/rest/oauth2/tokeninfo接口(GET请求,把Token放在token参数里),查看返回的scopes列表里有没有item:create,以及username是不是目标用户。
2. 核对请求URL和参数的正确性
- 你的POST请求URL应该是
https://<你的门户域名>/sharing/rest/users/{目标用户名}/items,别把{目标用户名}填错了,比如填成了群组名或者其他用户。 - 请求体的JSON要确保必填项都正确:
type必须严格写Web Map(大小写不能错)text字段要符合Web Map的JSON结构(可以先在ArcGIS里导出一个Web Map的JSON来参考格式)- Postman里要选
Body > raw > JSON格式,别选错成了form-data或者其他格式
- 别忘了在请求头里加
Authorization: Bearer <你的Token>,很多人会漏这个!
3. 检查用户的内容配额和角色权限
- 登录ArcGIS门户,查看目标用户的存储配额:要是配额已经用完了,也会触发类似的权限报错,这时候得清理旧内容或者申请扩容。
- 确认用户的角色:比如有些自定义角色可能被限制了创建Web Map的权限,得确保角色允许创建
Web Map类型的内容。
4. 环境安全设置排查(针对ArcGIS Enterprise)
- 如果你用的是私有部署的ArcGIS Enterprise,要检查门户的安全策略:有没有限制API访问的IP白名单?有没有禁用REST API创建内容的功能?
- 如果是用注册的应用程序获取的Token,要确保应用程序已经被授权了
item:create的权限,并且用户已经同意了应用的授权请求。
附一个正确的请求示例(Postman里的配置)
请求URL:https://your-portal-domain/sharing/rest/users/your-username/items
请求头:Content-Type: application/jsonAuthorization: Bearer your-token-string
请求体(JSON):
{ "type": "Web Map", "title": "我的测试Web地图", "tags": "测试, WebMap", "snippet": "通过REST API创建的测试地图", "text": "{\"map\":{\"basemap\":{\"baseMapLayers\":[{\"id\":\"defaultBasemap\",\"url\":\"https://services.arcgis.com/5T5nSi527N4F7luB/arcgis/rest/services/World_Topo_Map/MapServer\"}]},\"version\":\"2.0\"}}" }
先从Token的权限和归属查起,这是最容易踩坑的地方,要是这些都没问题,再去核对配额和角色权限,应该能解决这个问题。
内容的提问来源于stack exchange,提问作者piptin
相关产品推荐
相关产品推荐

