所以是哪里的问题,可以解释下吗,我也碰到这个问题了 找到原因了....post函数参数需要自己手动json_encode转json
如何通过PHP调用云开发的HTTP API触发云函数?官方的文档是用post请求然后传4个参数,但是那个POSTBODY到底是传什么,官方文档也没说明,我没传POSTBODY报的-501007错误; 请问各位有没有通过php调用http api的案例借我参考一下; [代码]//获取接口凭证access_token[代码][代码]$url[代码] [代码]= [代码][代码]"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$secret}"[代码][代码];[代码][代码]$json_str[代码] [代码]= [代码][代码]file_get_contents[代码][代码]([代码][代码]$url[代码][代码]);[代码][代码]$aTest[代码] [代码]= json_decode([代码][代码]$json_str[代码][代码], true);[代码] [代码]print_format_r([代码][代码]$aTest[代码][代码]);[代码] [代码]//http api 触发云函数[代码][代码]$access_token[代码] [代码]= [代码][代码]$aTest[代码][代码][[代码][代码]'access_token'[代码][代码]];[代码][代码]$env[代码] [代码]= [代码][代码]'qr-cs8dp'[代码][代码];[代码][代码]$name[代码] [代码]= [代码][代码]'test'[代码][代码];[代码] [代码]$curl[代码] [代码]= curl_init();[代码][代码]// 使用curl_setopt()设置要获取的URL地址[代码][代码]$url2[代码] [代码]= [代码][代码]"https://api.weixin.qq.com/tcb/invokecloudfunction?access_token={$access_token}&env={$env}&name={$name}"[代码][代码];[代码][代码]curl_setopt([代码][代码]$curl[代码][代码], CURLOPT_URL, [代码][代码]$url2[代码][代码]);[代码][代码]// 设置是否输出header[代码][代码]curl_setopt([代码][代码]$curl[代码][代码], CURLOPT_HEADER, false);[代码][代码]// 设置是否输出结果[代码][代码]curl_setopt([代码][代码]$curl[代码][代码], CURLOPT_RETURNTRANSFER, 1);[代码][代码]// 设置是否检查服务器端的证书[代码][代码]curl_setopt([代码][代码]$curl[代码][代码], CURLOPT_SSL_VERIFYPEER, false);[代码][代码]// 使用curl_exec()将CURL返回的结果转换成正常数据并保存到一个变量[代码][代码]$data[代码] [代码]= curl_exec([代码][代码]$curl[代码][代码]);[代码][代码]// 使用 curl_close() 关闭CURL会话[代码][代码]curl_close([代码][代码]$curl[代码][代码]);[代码] [代码]$data[代码] [代码]= json_decode([代码][代码]$data[代码][代码]);[代码][代码]$data[代码] [代码]= get_object_vars([代码][代码]$data[代码][代码]);[代码] [代码]print_format_r([代码][代码]$data[代码][代码]);[代码]
2019-09-08