通过CURL向测试设备发送RCS消息时遭遇403权限拒绝问题求助
解决RCS消息发送403 PERMISSION_DENIED错误
针对你遇到的PERMISSION_DENIED错误(提示无法找到GCP项目对应的RBM Agent),可以按以下步骤排查解决:
1. 确认服务账号密钥与RBM Agent的GCP项目匹配
- 打开RBM Agent的详情页面,找到其关联的GCP项目ID
- 打开你下载的服务账号密钥JSON文件,查看
project_id字段值 - 对比两者是否一致:如果不匹配,删除当前密钥,在Agent所属的GCP项目中重新生成服务账号密钥
2. 为服务账号配置正确的RBM权限
- 进入对应GCP项目的IAM页面
- 找到生成密钥的服务账号,点击编辑权限
- 添加
roles/rcsbusinessmessaging.sender角色(该角色拥有发送RCS消息的权限) - 保存后等待5-10分钟,让权限生效
3. 修正curl命令的参数格式
你的curl命令中URL参数包含多余单引号,且请求体不符合JSON格式要求,修改后的命令如下:
curl -X POST "https://<<REGION>>-rcsbusinessmessaging.googleapis.com/v1/phones/<<MOBILE-WITH-COUNTRY-CODE>>/agentMessages?messageId=acd1&agentId=<<RCS-AGENT-ID>>" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json service-account-key.json rcsbusinessmessaging`" \ -d "{ \"contentMessage\": { \"text\": \"Hello, world!\" } }"
关键修正点:
- 移除
messageId和agentId参数值的单引号 - 将请求体中的单引号替换为双引号(符合JSON语法规范)
4. 验证Agent状态与测试设备关联
- 确认RBM Agent处于启用状态
- 检查测试手机号是否已成功关联到该Agent,并且手机端已完成批准操作
内容的提问来源于stack exchange,提问作者Mohit
相关产品推荐
相关产品推荐

