如果你在头条上面做表单推广,它的表单数据只在平台上面,只有通过接口的方式拉取到自己的库里,正面是我用户的,供须要的朋友参考
Access-Token 获取
php代码
<?php
function get_Signature($time,$start_time,$end_time){
$string="/crm/v2/openapi/pull-clues/?start_time=$start_time&end_time=$end_time $time";
$Signature = base64_encode(hash_hmac("sha256", $string,"MVhDRU9KQ1BUSE9a",false));
return $Signature;
}
function get_toutiao_cvm($start_time,$end_time,$page=1,$page_size=10){
$time=time();
$headers=array(
"Timestamp:".$time,
"Access-Token:xxxxxxxxxxxxxxxxxxxxxxx", // 今日头条 Access-Token
"Signature:".get_Signature($time,$start_time,$end_time)
);
// 取数据
$clue_id = file_get_contents("toutiao_cvm_config.txt");
$url="https://crm.bytedance.com/crm/v2/openapi/pull-clues/?start_time=$start_time&end_time=$end_time&page=$page&page_size=$page_size";
$result = http($url,$headers);
print_r($result);
if($result['count']>0){
$count = $result['count'];
$page_num=ceil($count/$page_size);
foreach ($result['data'] as $key => $value) {
if($value['clue_id']==$clue_id){
exit;
}
// 把第一条数据的clue_id放入配置文件
if($key==0 && $page==1){
file_put_contents("toutiao_cvm_config.txt", $value['clue_id']);
}
/*
写入数据库操作
.................
*/
echo $value['clue_id'].'<br/>';
}
if($page_num>$page){
get_toutiao_cvm($start_time,$end_time,$page+1,$page_size);
}
}
}
get_toutiao_cvm(date("Y-m-d"),date("Y-m-d")); //两个日期之间的数据
function http($url, $headers=[], $data='', $method='GET'){
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_SSLVERSION, 1);
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
if($method=='POST'){
curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
if ($data != ''){
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
}
}
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
$tmpInfo = curl_exec($curl); // 执行操作
if ($tmpInfo === FALSE){
echo 'cURL Error:'.curl_error($curl);
}
curl_close($curl); // 关闭CURL会话
return json_decode($tmpInfo,true); // 返回数据
}