调用MessageBird发送验证短信后访问返回href报message not found错误
错误原因
- 资源过期:你返回的验证请求有效期只有30秒(从响应里
createdDatetime到validUntilDatetime间隔30秒),有效期过后关联的短信资源会被系统自动清理,此时访问自然会返回不存在的错误。 - 缺少鉴权:MessageBird所有API接口都要求请求携带合法的
Authorization头鉴权,你直接在浏览器打开href链接时,请求默认不会携带你的AccessKey,相当于匿名访问,平台会判定你没有权限读取该资源,直接返回找不到的错误。 - 权限不足:如果你携带了鉴权头仍然报错,可能是你使用的AccessKey没有开通Messages API的读取权限,仅开通了Verify API的发送权限。
解决方法
- 如果仅需要查询验证请求的状态,直接请求验证接口本身的资源地址即可,不需要访问关联的短信链接,请求示例如下,注意在30秒有效期内发起:
curl --location --request GET 'https://rest.messagebird.com/verify/e41c509641a34324a0e1333a4e87d84d' --header 'Authorization: AccessKey 替换为你自己的ACCESS_KEY'
- 如果你确实需要查询关联的短信详情,需要在30秒有效期内发起请求,且请求时必须携带和发送验证短信时相同的AccessKey作为鉴权头,不要直接在浏览器打开链接。
- 若上述操作完成后仍有报错,登录MessageBird后台查看对应AccessKey的权限配置,确认开通了Messages API的读取权限即可。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

