• 产品功能
    • 提供软件开发技术头条博客文章数据;
    • 每日更新两次数据;
    • 数据抓取与文章质量筛选基于机器学习;
    • 全接口支持 HTTPS(TLS v1.0 / v1.1 / v1.2 / v1.3);
    • 全面兼容 Apple ATS;
    • 全国多节点 CDN 部署;
    • 接口极速响应,多台服务器构建 API 接口负载均衡。
  • API 文档

    接口地址: https://api.gugudata.com/news/techblogs

    返回格式: application/json; charset=utf-8

    请求方式: GET

    请求协议: HTTPS

    请求示例: https://api.gugudata.com/news/techblogs?appkey=APPKEY&pagesize=10&pageindex=1

    接口测试: https://api.gugudata.com/news/techblogs/demo

    请求参数(如果为 POST 请求,那么参数以 JSON 的格式传递)

    参数名 参数类型 是否必须 默认值 备注
    appkey string APPKEY 付费后获取的 APPKEY
    pagesize int 10 每页数据量,参数最大值为 100
    pageindex int 1 页码

    返回参数

    参数名 参数类型 备注
    DataStatus.StatusCode int 接口返回状态码
    DataStatus.StatusDescription string 接口返回状态说明
    DataStatus.ResponseDateTime string 接口数据返回时间
    DataStatus.DataTotalCount int 此条件下的总数据量,一般用于分页计算
    Data.ArticleId int 文章Id
    Data.ArticleTitle string 文章标题
    Data.ArticleAuthor string 文章作者
    Data.ArticleSourceUrl string 文章链接
    Data.Tags string[] 文章 Tags 数组
    Data.CreateDateTime string 文章发表时间
  • 接口错误码
    错误码 错误内容 备注
    100 正常返回
    101 参数错误
    102 请求频率受限 每秒请求不能超过 100 次
    103 账号欠费
    104 APPKEY 错误 请检查传递的 APPKEY 是否为开发者中心获取到的值
    110 接口响应错误
  • 示例代码
    //导入相关类库
    var http = require('https');
    var querystring = require('querystring');
    //构造请求参数
    var data = {
        appkey:'APPKEY', pagesize:10, pageindex:1
    };
    var content = querystring.stringify(data);
    var options = {
    	hostname:'https://api.gugudata.com',
    	port:80,
    	path:'/news/techblogs' + '?' + content,
    	method:'GET'
    }
    //发送网络请求
    var req = http.request(options,function(res){
    	console.log('STATUS:' + res.statusCode);
    	console.log('HEADERS:' + JSON.stringify(res.headers));
    	res.setEncoding('utf-8');
    	res.on('data',function(chunk){
    		console.log('------------接口响应数据片段分隔------------\r\n');
    		console.log(chunk);
    	});
    	res.on('end',function(){
    		console.log('********接口响应结束********');
    	});
    });
    req.on('error',function(err){
        console.error(err);
    });
    req.end();
    data = array(
        'appkey' => 'APPKEY', 'pagesize' => 10, 'pageindex' => 1
    );
    send_request('https://api.gugudata.com/news/techblogs', $data, '', 'GET');
                                        
    /**
     * 发送HTTP请求
     *
     * @param string $url 请求地址
     * @param string $method 请求方式 GET/POST
     * @param string $refererUrl 请求来源地址
     * @param array $data 发送数据
     * @param string $contentType
     * @param string $timeout
     * @param string $proxy
     * @return boolean
     */
    function send_request($url, $data, $refererUrl = '', $method = 'GET', 
                          $contentType = 'application/json', $timeout= 30, $proxy = false) {
        $ch = null;
        if('POST' === strtoupper($method)) {
            $ch = curl_init($url);
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_HEADER,0 );
            curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
            curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
            if ($refererUrl) {
                curl_setopt($ch, CURLOPT_REFERER, $refererUrl);
            }
            if($contentType) {
                curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:'.$contentType));
            }
            if(is_string($data)){
                curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
            } else {
                curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
            }
        } else if('GET' === strtoupper($method)) {
            if(is_string($data)) {
                $real_url = $url. (strpos($url, '?') === false ? '?' : ''). $data;
            } else {
                $real_url = $url. (strpos($url, '?') === false ? '?' : ''). http_build_query($data);
            }
     
            $ch = curl_init($real_url);
            curl_setopt($ch, CURLOPT_HEADER, 0);
            curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:'.$contentType));
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
            if ($refererUrl) {
                curl_setopt($ch, CURLOPT_REFERER, $refererUrl);
            }
        } else {
            $args = func_get_args();
            return false;
        }
     
        if($proxy) {
            curl_setopt($ch, CURLOPT_PROXY, $proxy);
        }
        $ret = curl_exec($ch);
        $info = curl_getinfo($ch);
        $contents = array(
                'httpInfo' => array(
                        'send' => $data,
                        'url' => $url,
                        'ret' => $ret,
                        'http' => $info,
                )
        );
     
        curl_close($ch);
        return $ret;
    }
  • 接口 SDK
    • 目前 SDK Alpha 版本部分商业用户内测中,您可以直接使用上述 RESTful API 进行数据请求。

  • 常见问题 Q&A
    • Q: 数据请求有缓存吗?

      A: 所有的数据都是直接返回的,但在更新周期内数据是缓存的。

  • 服务协议

    用户应当充分阅读本协议,用户使用咕咕数据 API 服务亦视为接受本协议。

    一、定义

    咕咕数据 API 服务:由咕咕数据数据平台提供的数据 API 服务。

    用户: 以任何形式使用咕咕数据的自然人、法人或其他组织。

    二、用户保证

    1.用户同意并保证,在本协议有效期内,咕咕数据有权于任何时间要求用户提交相关资质证明资料原件及/或其他资料信息,用户对其所提交信息的真实完整、合法有效性承担保证责任。

    2. 用户同意并保证,合法并如约使用咕咕数据 API 服务。用户对其行为产生的任何法律责任自行独立承担,与咕咕数据无关。

    三、用户的权利与义务

    1. 用户有权就咕咕数据申请账号,用户注册账号,应向咕咕数据提供真实完整且合法有效的信息。 如用户信息发生任何变更,用户应于变更后书面通知咕咕数据并提供最新资料信息。

    2. 用户需要自行保管其帐号和密码。用户帐号、密码使用权仅属于初始申请注册人,禁止赠与、借用、租用、转让或者售卖,如果用户进行此类操作导致密码泄露造成损失的,咕咕数据并不承担责任。

    3. 用户应按使用咕咕数据的实际发送数量,根据咕咕数据页面公布资费标准向咕咕数据支付相应的费用。

    4. 用户保证其所提供的手机号码列表的真实性、合法性、有效性及许可性,用户有义务对手机列表进行筛选。否则咕咕数据有权随时终止本协议。

    5. 用户在使用咕咕数据 API 服务期间,承诺并保证:

    (1) 遵守所有中华人民共和国法律法规和国际上有关互联网和短信的协议、规定、程序和惯例;

    (2) 不利用咕咕数据 API 服务进行干扰或扰乱咕咕数据网络服务或其他正常使用;

    (3) 不行使其他可能给咕咕数据带来任何不利影响的行为或者法律及政策禁止的行为。

    6. 用户不得利用咕咕数据 API 服务发送以下内容的短信:

    (1)接受方事先没有提出要求或者同意接受的广告等宣传性或营销性内容;

    (2)含有病毒、恶意代码、色情、反动等不良信息或有害信息

    (3)地产、医疗、教育、留学、移民等相关内容

    (4)冒充任何人或机构,或以虚伪不实的方式谎称或使人误认为与任何人或任何机构有关。

    (5)侵犯他人著作权或其他知识产权,或违反保密、雇佣或不披露协议披露他人商业秘密或保密信息。

    7. 用户应对相关数据自行存储和备份并至少保留六十日。根据咕咕数据或国家主管部门的要求,用户应向其提供备份内容。用户使用咕咕数据 API 服务,不得于任何时间任何事件中使用咕咕数据的Logo、服务标记、域名及其他具有咕咕数据显著特征的标识。

    8. 用户应当按照本协议以及咕咕数据不时公布的规定,妥善使用咕咕数据 API 服务并为其行为负责。因用户行为导致咕咕数据遭受诉讼、索赔及/或处罚的,用户应赔偿咕咕数据因此造成的全部损失。

    9. 本协议一经生效咕咕数据即有权永久免费使用用户的商业名称、商标、Logo等信息作为案例宣传咕咕数据旗下的相关服务。

    10. 用户同意接收来自咕咕数据的邮件及短信,包括但不限于商业推广信息等。

    四、咕咕数据的权利与义务

    1. 咕咕数据对用户行为无审核监督义务。因用户行为给咕咕数据造成的一切损失,咕咕数据有权向用户追偿。

    2. 咕咕数据对其提供给用户的服务质量做出如下承诺:

    (1)咕咕数据为客户发送的短信数量是真实可信的实际数量

    (2)咕咕数据会向客户提供合理的建议和协助来帮助用户提高发送质量。

    (3)咕咕数据会提供必要的客户投诉与答疑服务。

    3. 咕咕数据有权随时调整咕咕数据 API 服务的资费,但该调整不会对用户已购买的服务产生影响。

    4. 咕咕数据有权对咕咕数据 API 服务进行定期或不定期的升级或完善,但应提前在相关页面进行公告。如用户因此受到影响,咕咕数据无需为此承担任何责任。

    5. 咕咕数据有权根据自己的判断对用户是否违反本协议约定及咕咕数据 API 服务使用规则做出认定。用户若有违反的,咕咕数据有权随时中止或终止本协议。咕咕数据无需就此征得用户同意或提前通知用户。

    6. 因非咕咕数据原因导致的本协议提前终止,用户已经支付而尚未使用的费用咕咕数据有权不予退还。

    7. 鉴于互联网服务的特殊性,对因不可抗力、第三方服务、黑客攻击、政策影响及其他任何非咕咕数据原因引起的服务中断、数据丢失等,咕咕数据均无需承担任何责任。

    五、知识产权

    1. 咕咕数据服务中包含的任何文字、图表、音频、视频和/或软件(包括但不限于软件中包含的图表、动画、音频、视频、界面实际、数据和程序、代码、文档)等信息或材料均受著作权法、商标法或其它法律法规的保护,未经相关权利人书面同意,用户不得以任何方式使用该等信息或材料,但出于使用咕咕数据服务目的而使用的除外。

    2. 除本协议明确允许的以外,用户不得以任何形式或任何方式对咕咕数据服务部分或全部内容进行修改、出租、租赁、出借、出售、分发、复制、创作衍生品或用于任何商业用途。

    3. 用户使用咕咕数据发布的信息不得侵犯任何第三人的知识产权,未经相关权利人之事先书面同意,用户不得以任何方式上传、发布、修改、传播或复制任何受著作权保护的材料、商标或属于其他人的专有信息。

    4. 若您认为您的知识产权或其他合法权益被侵犯,请向咕咕数据提供以下资料:

    (1) 对涉嫌侵权内容拥有知识产权或其他合法权益的权属证明;

    (2) 权利人具体的主体资质和联络信息,包括个人的姓名、身份证或护照复印件、单位的营业执照复印件或者其他资质证明复印件、通信地址及电话号码等;

    (3) 涉嫌侵权内容在本网站上的位置;

    (4) 对侵权情况的详细描述;

    (5) 在权利通知中加入如下关于通知内容真实性的声明:“由以上操作所引起的一切后果,与咕咕数据无关,由我本人/公司承担。”在签字或加盖公章后发往以下邮箱: info@juhe.cn

    六、 隐私权

    1. 保护用户的隐私是咕咕数据的一项基本政策。

    2. 适用于用户的隐私的相关条款请参见 《隐私协议》

    七、 免责声明

    1. 鉴于网络服务的特殊性,咕咕数据不保证网络服务的绝对及时性、安全性和准确性,用户同意咕咕数据有权不经事先通知,随时变更、中断或终止部分或全部的网络服务而无论同意与否,咕咕数据对用户和任何第三人均无需承担任何责任。

    2. 用户经由咕咕数据服务与广告商进行通讯联系或商业往来或参与促销活动,完全属于用户与广告商之间的行为,与咕咕数据没有任何关系,若因商业行为所产生之任何损害或损失,咕咕数据不承担任何责任。

    3. 用户明确同意其使用咕咕数据服务所存在的风险及其后果将完全由其自己承担,咕咕数据对用户不承担任何责任。如因用户违反有关法律、法规或本协议项下的任何条款而给咕咕数据或任何其他第三人造成损失,用户同意承担由此造成的损害赔偿责任。

    八、其他

    1. 本协议的版权归咕咕数据,咕咕数据保留对本协议的一切解释和修改权利。

    2. 本协议的订立、执行和争议的解决均应适用中华人民共和国法律。如双方就本协议内容或其执行发生任何争议,双方应尽量友好协商解决;协商不成时,任何一方均可向咕咕数据所在地有管辖权的人民法院提起诉讼。

    3. 咕咕数据行使本协议的任何权利或规定,不构成对前述权利之放弃。

    4. 如本协议中的任何条款完全或部分无效,本协议的其余条款仍有效并且有约束力。

  • 技术支持
    • 技术支持邮箱: support@gugudata.com