扫一扫浏览

拉取头条推广表单数据php代码分享

未结贴
0 4465
袁小白未认证 2019-05-09 15:16:43
收藏

如果你在头条上面做表单推广,它的表单数据只在平台上面,只有通过接口的方式拉取到自己的库里,正面是我用户的,供须要的朋友参考

Access-Token 获取

获取飞鱼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); // 返回数据
}

最近热帖 HOT TOPIC
父元素flex之后,子元素高度自适应问题 6431
thinkphp5隐藏默认模块的一些问题 5863
一张纸的厚度是0.01毫米,则该纸对折30次后是多厚(据说超过珠穆朗玛峰的高度)php实现 5778
教你如果处理高并发数据不同步的问题php篇 5544
关于thinkphp5.0.x getshell漏洞的说明 5492
tpframe新建主题 5340
PHP如何判断字符串是否为json格式 5281
omnicore rpc api中文手册【usdt】 5250
【全套视频】thinkphp5视频教程 5217
使用宝塔linux面板创建FTP无法连接的解决办法(阿里云或腾讯云) 5007
月度热议HOT COMMENTS
tpframe 后续版本你希望有的功能是什么(分享贴) 12
权限那里怎么一登录别的账号就报错啊 9
关于tpframe的一点话题 6
cms插件在分类排序的时候JSON错误 6
基于tpframe v3.x 的微信公众号插件已批量上线 5
tpframe插件tcms插件v2.2已发布上线,欢迎下载使用 5
tpframe6.0马上就要跟大家见面了,一次全新的升级 5
透析thinkphp5升级版开发框架tpframe 3
新增的管理员没有权限操作CMS模块。 3
api接口文档插件easydoc的基本用法,快速搞定接口文档 3