nodejs实现百度推送丨技术开发分享录

nodejs实现百度推送

{{ detail.nickname }}

转载 翻译 {{ formatTime(detail.create_time) }} 字数 {{ detail.content && detail.content.length }} 阅读 {{ detail.read_num }} {{ formatTag(v) }}

"首先在utils/index.js里封装一个推送方法,代码如下:\n\n```\nconst http = require(\"http\");\n/*\n  提交url到百度\n  opts参数:\n    urlList: Array\n*/\nfunction pushUrlToBaidu(opts) {\n  let content = opts.urlList.join(\"\\n\");\n  let params = {\n    host: \"data.zz.baidu.com\",\n    path: '/urls?site=www.xxx.com&token=xxxxxxxxxxxxxx',\n    method: \"post\",\n    \"User-Agent\": \"curl/7.12.1\",\n    headers: {\n      \"Content-Type\": \"text/plain\",\n      \"Content-Length\": content.length\n    }\n  };\n  let httpReq = http.request(params, function (res) {\n    res.setEncoding(\"utf8\");\n    res.on(\"data\", function (data) {\n      console.log(\"data:\", data);\n    });\n  });\n  httpReq.write(content);\n  httpReq.end();\n}\n```\n\n然后,在合适的位置,取随机10条数据推送\n\n```\nconst utils = require('../utils');\n// 百度推送\nlet randomIdSql = `SELECT id FROM test WHERE id >= ((SELECT MAX(id) FROM test)-(SELECT MIN(id) FROM test)) * RAND() + (SELECT MIN(id) FROM test) LIMIT 10`;\nconnection.query(randomIdSql, function(err, result) {\n  if(!err) {\n    let urlList = [];\n    result.forEach(v => {\n      urlList.push('http://www.xxx.com/detail/'+v.id);\n    });\n    utils.pushUrlToBaidu({urlList});\n  }\n});\n```\n\n推送成功说明:\n\n| 字段 | 是否必选 | 参数类型 | 说明 |\n|: --- |: --- |: --- |: --- |\n| success | 是 | int | 成功推送的url条数 |\n| remain | 是 | int | 当天剩余的可推送url条数 |\n| not_same_site | 否 | array | 由于不是本站url而未处理的url列表 |\n| not_valid | 否 | array | 不合法的url列表 |"
PS:写作不易,如要转裁,请标明转载出处。

如果此篇对您有帮助,可小额赞助,以兹鼓励!

猜你想看