公司做直播,使用腾讯云的点播来进行视频存储与转码,现在就讲一下使用腾讯云API接口中碰到的一些问题。以下提到的都是使用PHP。
接口鉴权中碰到的问题
按照腾讯云API-接口鉴权中进行操作,发现腾讯云返回响应码为4100,鉴权失败。后来经过思考,发现在参数notifyUrl
即回调地址参数定义时使用了urlencode
函数进行处理,去掉urlencode
处理。鉴权部分没有再出现问题啦。
回调中碰到的问题
因为需要转码完成以后进行回调,然后腾讯云会按照你之前提供的回调地址来进行回调。回调时是使用POST发送JSON数据。在测试环境中接受JSON数据都是使用$GLOBALS['HTTP_RAW_POST_DATA']
来接受,结果上线以后发现使用$GLOBALS['HTTP_RAW_POST_DATA']
来获取回调的JSON数据,并不能接收到(这也就是坑,线上环境和线下环境不一致导致的)。然后使用$_POST
来接受数据,能接受数据,但是数据有问题,一直无法进行urldecode
操作,使用urldecode
操作获取的数据会返回NULL
。然后各种查资料,总算解决这个问题啦,使用file_get_contents("php://input");
可以获取原始的回调JSON数据。