扫一扫浏览

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

未结贴
0 2322
袁小白未认证 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之后,子元素高度自适应问题 4294
thinkphp5隐藏默认模块的一些问题 3652
关于thinkphp5.0.x getshell漏洞的说明 3385
一张纸的厚度是0.01毫米,则该纸对折30次后是多厚(据说超过珠穆朗玛峰的高度)php实现 3312
教你如果处理高并发数据不同步的问题php篇 3127
tpframe新建主题 3093
移动web资源整理,你值得收藏的干货 2985
PHP如何判断字符串是否为json格式 2985
【全套视频】thinkphp5视频教程 2980
omnicore rpc api中文手册【usdt】 2918
月度热议HOT COMMENTS
tpframe 后续版本你希望有的功能是什么(分享贴) 12
关于tpframe的一点话题 6
cms插件在分类排序的时候JSON错误 6
基于tpframe v3.x 的微信公众号插件已批量上线 5
tpframe插件tcms插件v2.2已发布上线,欢迎下载使用 5
新增的管理员没有权限操作CMS模块。 3
api接口文档插件easydoc的基本用法,快速搞定接口文档 3
thinkphp5自动完成操作,两次运行的详解 2
thinkphp5隐藏默认模块的一些问题 2
tpframe-curd操作之添加数据 2