4年前 (2015-10-24)  网络技巧 |   101 条评论  583 
百度已收录 | 文章评分 1 次,平均分 5.0

私信回复机器人。类似小黄鸡那种。微信公众号上更容易见到。本文介绍微信普通帐号如何配置私信自动防回复机器人。

效果参考新浪微博:Zihao博客  欢迎私信骚扰。


 

一)申请注册成为新浪微博开发者。

申请方式参考:如何申请成为新浪微博开发者


二)申请图灵机器人api或者其他自动回复的api。网站:http://www.tuling123.com/

申请完成以后。记住自己的API KEY


三)根据自己的apikey。修改以下两个我现在使用的自动回复脚本。

1、CallbackDemo.php

<?php
//接口要求返回的字符串需要是utf8编码。
header( 'Content-type: text/html; charset=utf-8' );
//加载SDK
require_once 'CallbackSDK.php';
//设置app_key对应的app_secret
define("APP_SECRET", "fa4c7530210c932e312a0c78e63611da");
//初始化SDK
$call_back_SDK = new CallbackSDK();
$call_back_SDK->setAppSecret(APP_SECRET);
//首次验证url时会有'echostr'参数,后续推送消息时不再有'echostr'字段
//若存在'echostr'说明是首次验证,则返回'echostr'的内容。
if (isset($_GET["echostr"])) {
 die($_GET["echostr"]);
}
//处理开放平台推送来的消息,首先获取推送来的数据.
$post_msg_str = $call_back_SDK->getPostMsgStr();
/**
 * 设置接口默认返回值为空字符串。
 * 请注意数据编码类型。接口要求返回的字符串需要是utf8编码
 * 需要说明的是开放平台判断推送成功的标志是接口返回的http状态码,
 * 只要应用的接口返回的状态为200就会认为消息推送成功,如果http状态码不为200则会重试,共重试3次。
 */
$str_return = '';
if (!empty($post_msg_str)) {
 //sender_id为发送回复消息的uid,即蓝v自己
 $sender_id = $post_msg_str['receiver_id'];
 //receiver_id为接收回复消息的uid,即蓝v的粉丝
 $receiver_id = $post_msg_str['sender_id'];
 //回复text类型的消息示例。
 
 $keyword= $post_msg_str['text'];
 //图灵API
 $apiKey = "6c272f21787571a5ae473cb52910c5de";
 $apiURL = "http://www.tuling123.com/openapi/api?key=KEY&info=INFO";
 
// 设置报文头, 构建请求报文
 $reqInfo = $keyword;
 $url = str_replace("INFO", $reqInfo, str_replace("KEY", $apiKey, $apiURL)); 
 $res =file_get_contents($url);
 $result = json_decode($res);
 $jiaoyan=$result->{'code'};
 switch($jiaoyan){
 case "200000":
 $data_type = "text";
 $wz=$result->{'text'};
 $lj=$result->{'url'};
 $xx=$wz.$lj;
 $data = $call_back_SDK->textData("$xx");
 break;
 case "302000":
 //$data_type = "text";
 //$lb=$result->{'list'};
 //$xx=var_export ($lb, TRUE);
 //$data = $call_back_SDK->textData("$xx");
 $data_type = "articles";
 $length = count($result['list']) > 9 ? 9 :count($result['list']);
 for($i= 0;$i< $length;$i++){
 $articles [$i] = array (
 'display_name' => $result['list'][$i]['article'],
 'summary' => $result['list'][$i]['article'],
 'image' => $result['list'][$i]['icon'],
 'url' => $result['list'][$i]['detailurl'] 
 );
 }
 $data = $call_back_SDK->articleData($articles);
 break;
 case "40001":
 $data_type = "text";
 $xx="(>﹏<)我累了,需要休息一下。";
 $data = $call_back_SDK->textData("$xx");
 break;
 case "40002":
 $data_type = "text";
 $xx="(>﹏<)我累了,需要休息一下。";
 $data = $call_back_SDK->textData("$xx");
 break;
 case "40003":
 $data_type = "text";
 $xx="(>﹏<)我累了,需要休息一下。";
 $data = $call_back_SDK->textData("$xx");
 break;
 case "40004":
 $data_type = "text";
 $xx="(>﹏<)我累了,需要休息一下。";
 $data = $call_back_SDK->textData("$xx");
 break;
 case "40005":
 $data_type = "text";
 $xx="(>﹏<)我累了,需要休息一下。";
 $data = $call_back_SDK->textData("$xx");
 break;
 case "40006":
 $data_type = "text";
 $xx="(>﹏<)我累了,需要休息一下。";
 $data = $call_back_SDK->textData("$xx");
 break;
 case "40007":
 $data_type = "text";
 $xx="(>﹏<)我累了,需要休息一下。";
 $data = $call_back_SDK->textData("$xx");
 break;
 default:
 $data_type = "text";
 $xx=$result->{'text'};
 $data = $call_back_SDK->textData("$xx");
 }
 $str_return = $call_back_SDK->buildReplyMsg($receiver_id, $sender_id, $data, $data_type);
}
echo json_encode($str_return);

2.CallbackSDK.php

<?php
 
 
 
class CallbackSDK {
 
 private $app_secret = "";
 
 
 
 /**
 
 * 设置app_key对应的app_secret。
 
 * @param $app_secret
 
 */
 
 public function setAppSecret($app_secret) {
 
 $this->app_secret = "fa4c7530210c932e312a0c78e63611da";
 
 }
 
 
 
 /**
 
 * 获取推送来的的数据
 
 * 必须使用 $GLOBALS['HTTP_RAW_POST_DATA']方法获取post过来的原始数据来解析.
 
 * @return mixed
 
 */
 
 public function getPostMsgStr() {
 
 return json_decode($GLOBALS['HTTP_RAW_POST_DATA'], true);
 
 }
 
 
 
 /**
 
 * 验证签名
 
 * @param $signature
 
 * @param $timestamp
 
 * @param $nonce
 
 * @return bool
 
 */
 
 function checkSignature($signature, $timestamp, $nonce) {
 
 $tmpArr = array($this->app_secret, $timestamp, $nonce);
 
 sort($tmpArr, SORT_STRING);
 
 $tmpStr = sha1(implode($tmpArr));
 
 if ($tmpStr == $signature) {
 
 return true;
 
 } else {
 
 return false;
 
 }
 
 }
 
 
 
 /**
 
 * 组装返回数据
 
 * @param $receiver_id
 
 * @param $sender_id
 
 * @param $data
 
 * @param $type
 
 * @return array
 
 */
 
 function buildReplyMsg($receiver_id, $sender_id, $data, $type) {
 
 return $msg = array(
 
 "sender_id" => $sender_id,
 
 "receiver_id" => $receiver_id,
 
 "type" => $type,
 
 //data字段需要进行urlencode编码
 
 "data" => urlencode(json_encode($data))
 
 );
 
 }
 
 
 
 /**
 
 * 生成text类型的回复消息内容
 
 * @param $text
 
 * @return array
 
 */
 
 function textData($text) {
 
 return $data = array("text" => $text);
 
 }
 
 
 
 /**
 
 * 生成article类型的回复消息内容
 
 * @param $article
 
 * @return array
 
 */
 
 function articleData($articles) {
 
 return $data = array(
 
 'articles' => $articles
 
 );
 
 }
 
 
 
 /**
 
 * 生成position类型的回复消息内容
 
 * @param $longitude
 
 * @param $latitude
 
 * @return array
 
 */
 
 function positionData($longitude, $latitude) {
 
 return $data = array(
 
 "longitude" => $longitude,
 
 "latitude" => $latitude
 
 );
 
 }
 
}

 


三)修改完成以后,将两个脚本上传至服务器,点击微博主页--管理中心---粉丝服务---开发者中心---使用粉丝服务平台接口进行开发

设置的url为:CallbackDemo.php

APPKEY:为第一步申请成为开发者时,创建应用的appkey(不是机器人的appkey)

access_token:同上

配置完成,如果代码无误。机器人则生效。


完。

附赠小白福利。实在配置不出正确的可以直接使用我现成的服务器配置信息。

配置微博私信智能自动回复机器人

配置微博私信智能自动回复机器人

服务器配置(用于接收用户信息) 修改

URL:http://www.zihao123.com/CallbackDemo.php

APPKEY:3218656246

access_token:2.00RypELC7WJpVDbb45ae72a26vsjrC

应用名称:ZihaoBlog

 

 

除特别注明外,本站所有文章均为张子豪博客(ZihaoBlog)原创,转载请注明出处来自https://www.zihao123.com/722.html

关于
93年菜鸟云主机运维。

发表评论

表情 格式
  1. 就是喜欢你的文章 没办法

    江夏离 评论达人 LV.1 4年前 (2015-12-12) [0] [0]
  2. 就是喜欢你的文章 没办法

    江夏离 评论达人 LV.1 4年前 (2015-12-12) [0] [0]
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册

×
订阅图标按钮