接客户需求,要调用金数据表单内所有数据,官方文档写得实在是简单,几经摸索,终于实现了所有数据的调用,现分享相关代码
```php
<?php
$apikey='123456789'; //APIKEY 换成自己的
$apisec='123456789'; //APISEC 换成自己的
$formid='123456'; //表单ID 换成自己的
$url = 'https://jinshuju.net/api/v1/forms/'.$formid.'/entries';
$res=getjsjdate($url, $apikey,$apisec,$formid);
$d = json_decode($res,true);
echo $res;die;
//递归查所有数据
function getjsjdate($url, $apikey,$apisec,$formid,&$resdata=[])
{
$aHeader = httpres($url,array('authorization: Basic '.base64_encode($apikey.':'.$apisec)));
$d = json_decode($aHeader,true);
if(isset($resdata['data'])){
foreach ($d['data'] as $key => $value) {
array_push($resdata['data'],$value);
}
}else{
$resdata['data']=$d['data'];
}
if($d['next']!=null){
$url = 'https://jinshuju.net/api/v1/forms/'.$formid.'/entries?next='.$d['next'];
getjsjdate($url, $apikey,$apisec,$formid,$resdata);
}
$resd=json_encode($resdata);
return $resd;
}
//发起请求
function httpres($sUrl, $aHeader,$resdata=[])
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_URL, $sUrl);
curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
$sResult = curl_exec($ch);
$sError=curl_error($ch);
if($sError){
die($sError);
}
curl_close($ch);
return $sResult;
}