由于项目需要在微信推广,就在前段时间运营部反映链接时不时被封,页面显示:停止访问该页面!作为一个程序猿熊熊燃气,干脆就写了个接口。
接口获取思路
1、模拟微信浏览器
通过浏览器模拟微信可获取微信接口,登录微信网页版按F12获取接口,还没找到微信号就被封了。
2、抓包软件来获取腾讯接口
是我想的太简单了!
3、使用VB语言写出现被微信拦截判断
能检测微信域名,但是基于底层的封装,在检测过程中慢的怀疑人生。
4、微信公众号接口做判断
羊毛出在羊身上,那就试试用微信公众号,于是就拿刚注册完成的公众好进行获取,原理是这样的:将链接建成微信短链接 - 请求你的短链接 - 判断获取回来的页面
,结果是可以检测的,注意:公众号接口调用限制了次数
。
5、直接趴取现成接口
直接趴取的接口,免费撸到的接口,再对接到我的程序上,就可以使用了!
接口地址: http://api.new.urlzt.com/api/vx
请求方式: GET/POST
请求示例: http://api.new.urlzt.com/api/vx?token=Token值(后台生成获取)&url=www.urlzt.com
后台地址:https://dwz.cn/TzLUYNU2
微信检测被拦截原因分析
1、购买的域名有黑历史,曾经进过小黑屋,这类则是风险名单中的重点检测对象。
2、qq和微信是2种完全不同的检测机制,经常会出现一边被封另一边没事!
3、网站流量过大,腾讯针对流量过大的网站也是重点检测的对象!
4、诱导转发活动,即使是合法营销,也会被封。
5、 正文、标题、图片任意有一处有一点点违规信息,被系统抓取到也是会被封禁。
6、人工举报,这个也占有一定的比例。
7、有的是封链接不封域名,因为是腾讯合作的第三方平台,京东、拼多多、有赞等等。
8、 服务器 IP是一个很重点检测。
9、对于明显特征或复用度高的违规图片,系统是能识别的!
微信api对接程序PHP源码
打开Pycharm
把代码复制上去,直接运行就行!
$url = "http://api.new.urlzt.com/api/vx";
$params = array(
'Token值' =>'appkey',//您申请的Token值
'url' =>'www.qq.com',//您需要检测的域名
);
$paramstring = http_build_query($params);
$content = monkeyCurl($url, $paramstring);
$result = json_decode($content, true);
if($result) {
var_dump($result);
}else {
//请求异常
}
/**
* 请求接口返回内容
* @param string $url [请求的URL地址]
* @param string $params [请求的参数]
* @param int $ipost [是否采用POST形式]
* @return string
*/
function monkeyCurl($url, $params = false, $ispost = 0)
{
$httpInfo = array();
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
if ($ispost) {
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_URL, $url);
}else {
if ($params) {
curl_setopt($ch, CURLOPT_URL, $url.'?'.$params);
} else {
curl_setopt($ch, CURLOPT_URL, $url);
}
}
$response = curl_exec($ch);
if ($response === FALSE) {
//echo "cURL Error: " . curl_error($ch);
return false;
}
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$httpInfo = array_merge($httpInfo, curl_getinfo($ch));
curl_close($ch);
return $response;
}
Json返回值
- code为
200
{
"code":"200",
"msg":"检测正常"
}
- code为
201
{
"code":"201",
"msg":"检测异常"
}
- code为
500
{
"code":"500",
"msg":"检测失败"
}
- code为
-1
{
"code":"-1",
"msg":"非法请求或api缺少参数"
}
本文摘自 :https://blog.51cto.com/l