使用Twilio REST API为子账户创建Push Notification凭证时遭遇HTTP 400错误:无法创建凭证记录,提示'Secret'必须存在
排查Twilio子账户创建Push Notification凭证的400错误
我来帮你分析下这个问题,你遇到的HTTP 400错误提示'Secret' must be present,核心原因是Twilio API没有识别到你传递的密钥参数,虽然你代码里写了secret,但这里大概率是参数名的匹配问题,下面是具体的排查和解决步骤:
修正参数键名的大小写
Twilio的Notify API创建FCM类型凭证时,要求的必填参数名是Secret(首字母大写),而你代码里用的是小写的secret。PHP关联数组的键名是大小写敏感的,这就导致SDK传递的参数和API期望的不匹配,所以API判定你没传Secret。把参数键改成首字母大写试试:$sub_account = new TwilioClient('ACxxxxxxxxxxxxxxxxxx6f4', '7exxxxxxxxxxxxxxxxxxxx'); if( $sub_account) { $variable = $sub_account->notify->v1->credentials->create([ "type" => 'fcm', "Secret" => 'AxxxxI:APA91bG-WY6p9jNuTtgX5SohRF4VviARCjz68FIxvpTIeYUexxxxxxxxx', ]); if( $variable) { echo $variable->sid; } }适配SDK版本的参数名
如果上面的修改没用,检查下你的Twilio PHP SDK版本。部分新版本的SDK对参数名做了更明确的映射,FCM凭证的密钥参数需要用fcmSecret来传递,对应API的Secret字段。你可以试下这个写法:$variable = $sub_account->notify->v1->credentials->create([ "type" => 'fcm', "fcmSecret" => 'AxxxxI:APA91bG-WY6p9jNuTtgX5SohRF4VviARCjz68FIxvpTIeYUexxxxxxxxx', ]);验证子账户权限(兜底排查)
最后确认下你的子账户有没有创建Notify凭证的权限:登录Twilio控制台,进入子账户的权限设置页面,确保Notify服务的相关权限已经开启。不过根据错误提示,这个可能性比较小,但如果前面的方法都无效,可以排查这一点。
修改后重新测试代码,应该就能成功创建FCM凭证了。
内容的提问来源于stack exchange,提问作者syed mahroof
相关产品推荐
相关产品推荐

