Api模块 (处理需要access_token的主动接口)
- 主送发送客服消息(文本、图片、语音、视频、音乐、图文)
- 多客服功能(客服管理、多客服回话控制、获取客服聊天记录...)
- 素材管理(临时素材、永久素材、素材统计)
- 自定义菜单管理(创建、查询、删除菜单)
- 微信JSSDK(生成微信JSSDK所需的配置信息)
- 账号管理(生成带参数的二维码、长链接转短链接接口)
- 用户管理(用户分组管理、设置用户备注名、获取用户基本信息、获取用户列表、网页授权获取用户基本信息)
- 数据统计接口(开发中...)
* * @author gaoming13 <*****@*****.**> * @link https://github.com/gaoming13/wechat-php-sdk * @link http://me.diary8.com/ */ require '../../autoload.php'; use Gaoming13\WechatPhpSdk\Api; // 开发者中心-配置项-AppID(应用ID) $appId = 'wx733d7f24bd29224a'; // 开发者中心-配置项-AppSecret(应用密钥) $appSecret = 'c6d165c5785226806f42440e376a410e'; // 这是使用了Memcached来保存access_token // 由于access_token每日请求次数有限 // 用户需要自己定义获取和保存access_token的方法 $m = new Memcached(); $m->addServer('localhost', 11211); // api模块 - 包含各种系统主动发起的功能 $api = new Api(array('appId' => $appId, 'appSecret' => $appSecret, 'get_access_token' => function () use($m) { // 用户需要自己实现access_token的返回 return $m->get('access_token'); }, 'save_access_token' => function ($token) use($m) { // 用户需要自己实现access_token的保存 $m->set('access_token', $token, 0); })); header('Content-type: text/html; charset=utf-8'); list($err, $user_info) = $api->get_userinfo_by_authorize('snsapi_userinfo'); if ($user_info !== null) { var_dump($user_info); } else { echo '授权失败!'; }
// 开发者中心-配置项-服务器配置-Token(令牌) $token = 'gaoming13'; // 开发者中心-配置项-服务器配置-EncodingAESKey(消息加解密密钥) $encodingAESKey = '072vHYArTp33eFwznlSvTRvuyOTe5YME1vxSoyZbzaV'; // 这是使用了Memcached来保存access_token // 由于access_token每日请求次数有限 // 用户需要自己定义获取和保存access_token的方法 $m = new Memcached(); $m->addServer('localhost', 11211); // wechat模块 - 处理用户发送的消息和回复消息 $wechat = new Wechat(array('appId' => $appId, 'token' => $token, 'encodingAESKey' => $encodingAESKey)); // api模块 - 包含各种系统主动发起的功能 $api = new Api(array('appId' => $appId, 'appSecret' => $appSecret, 'get_access_token' => function () use($m) { // 用户需要自己实现access_token的返回 return $m->get('access_token'); }, 'save_access_token' => function ($token) use($m) { // 用户需要自己实现access_token的保存 $m->set('access_token', $token, 0); })); // 获取微信消息 $msg = $wechat->serve(); // 回复用户消息 $wechat->reply('hehhe!'); // 主动发送文本消息 - 简洁模式 $api->send($msg->FromUserName, 'heheh'); // 主动发送文本消息 $api->send($msg->FromUserName, array('type' => 'text', 'content' => 'hello world!', 'kf_account' => 'test1@kftest')); // 主动发送图片消息 $api->send($msg->FromUserName, array('type' => 'image', 'media_id' => 'Uq7OczuEGEyUu--dYjg7seTm-EJTa0Zj7UDP9zUGNkVpjcEHhl7tU2Mv8mFRiLKC', 'kf_account' => 'test1@kftest')); // 主动发送语音消息 $api->send($msg->FromUserName, array('type' => 'voice', 'media_id' => 'rVT43tfDwjh4p1BV2gJ5D7Zl2BswChO5L_llmlphLaTPytcGcguBAEJ1qK4cg4r_', 'kf_account' => 'test1@kftest'));
/** * 生成授权地址的链接(用户点击后完成授权后,跳到回调页面获取用户信息) * `snsapi_userinfo` 授权方式获取用户信息(弹出授权页面,可通过openid拿到昵称、性别、所在地。 * 即使在未关注的情况下,只要用户授权,也能获取其信息) * * @author gaoming13 <*****@*****.**> * @link https://github.com/gaoming13/wechat-php-sdk * @link http://me.diary8.com/ */ require '../../autoload.php'; use Gaoming13\WechatPhpSdk\Api; // 开发者中心-配置项-AppID(应用ID) $appId = 'wx733d7f24bd29224a'; // 开发者中心-配置项-AppSecret(应用密钥) $appSecret = 'c6d165c5785226806f42440e376a410e'; // 这是使用了Memcached来保存access_token // 由于access_token每日请求次数有限 // 用户需要自己定义获取和保存access_token的方法 $m = new Memcached(); $m->addServer('localhost', 11211); // api模块 - 包含各种系统主动发起的功能 $api = new Api(array('appId' => $appId, 'appSecret' => $appSecret, 'get_access_token' => function () use($m) { // 用户需要自己实现access_token的返回 return $m->get('access_token'); }, 'save_access_token' => function ($token) use($m) { // 用户需要自己实现access_token的保存 $m->set('access_token', $token, 0); })); header('Content-type: text/html; charset=utf-8'); $authorize_url = $api->get_authorize_url('snsapi_userinfo', 'http://wx.diary8.com/demo/snsapi/callback_snsapi_userinfo.php'); echo '<a href="' . $authorize_url . '">' . $authorize_url . '</a>';
$token = 'gaoming13'; // 开发者中心-配置项-服务器配置-EncodingAESKey(消息加解密密钥) $encodingAESKey = '072vHYArTp33eFwznlSvTRvuyOTe5YME1vxSoyZbzaV'; // 这是使用了Memcached来保存access_token // 由于access_token每日请求次数有限 // 用户需要自己定义获取和保存access_token的方法 $m = new Memcached(); $m->addServer('localhost', 11211); // wechat模块 - 处理用户发送的消息和回复消息 $wechat = new Wechat(array('appId' => $appId, 'token' => $token, 'encodingAESKey' => $encodingAESKey)); // api模块 - 包含各种系统主动发起的功能 $api = new Api(array('appId' => $appId, 'appSecret' => $appSecret, 'get_access_token' => function () { // 用户需要自己实现access_token的返回 global $m; return $m->get('access_token'); }, 'save_access_token' => function ($token) { // 用户需要自己实现access_token的保存 global $m; $m->set('access_token', $token, 0); })); // 获取微信消息 $msg = $wechat->serve(); error_log(json_encode($msg), 0); // 默认消息 $default_msg = "/微笑 欢迎关注本测试号:\n 回复1: 回复文本消息\n 回复2: 回复图片消息\n 回复3: 回复语音消息\n 回复4: 回复视频消息\n 回复5: 回复音乐消息\n 回复6: 回复图文消息\n 回复7: 主动回复"; // 用户关注微信号后 - 回复用户普通文本消息 if ($msg->MsgType == 'event' && $msg->Event == 'subscribe') { $wechat->reply($default_msg); exit; } // 用户回复1 - 回复文本消息
/** * 生成授权地址的链接(用户点击后完成授权后,跳到回调页面获取用户信息) * `snsapi_base` 授权方式获取用户信息(不弹出授权页面,直接跳转,只能获取用户openid) * * @author gaoming13 <*****@*****.**> * @link https://github.com/gaoming13/wechat-php-sdk * @link http://me.diary8.com/ */ require '../../autoload.php'; use Gaoming13\WechatPhpSdk\Api; // 开发者中心-配置项-AppID(应用ID) $appId = 'wx733d7f24bd29224a'; // 开发者中心-配置项-AppSecret(应用密钥) $appSecret = 'c6d165c5785226806f42440e376a410e'; // 这是使用了Memcached来保存access_token // 由于access_token每日请求次数有限 // 用户需要自己定义获取和保存access_token的方法 $m = new Memcached(); $m->addServer('localhost', 11211); // api模块 - 包含各种系统主动发起的功能 $api = new Api(array('appId' => $appId, 'appSecret' => $appSecret, 'get_access_token' => function () use($m) { // 用户需要自己实现access_token的返回 return $m->get('access_token'); }, 'save_access_token' => function ($token) use($m) { // 用户需要自己实现access_token的保存 $m->set('access_token', $token, 0); })); header('Content-type: text/html; charset=utf-8'); $authorize_url = $api->get_authorize_url('snsapi_base', 'http://wx.diary8.com/demo/snsapi/callback_snsapi_base.php'); echo '<a href="' . $authorize_url . '">' . $authorize_url . '</a>';
// 开发者中心-配置项-服务器配置-Token(令牌) $token = 'gaoming13'; // 开发者中心-配置项-服务器配置-EncodingAESKey(消息加解密密钥) $encodingAESKey = '072vHYArTp33eFwznlSvTRvuyOTe5YME1vxSoyZbzaV'; // 这是使用了Memcached来保存access_token // 由于access_token每日请求次数有限 // 用户需要自己定义获取和保存access_token的方法 $m = new Memcached(); $m->addServer('localhost', 11211); // wechat模块 - 处理用户发送的消息和回复消息 $wechat = new Wechat(array('appId' => $appId, 'token' => $token, 'encodingAESKey' => $encodingAESKey)); // api模块 - 包含各种系统主动发起的功能 $api = new Api(array('appId' => $appId, 'appSecret' => $appSecret, 'get_access_token' => function () use($m) { // 用户需要自己实现access_token的返回 return $m->get('access_token'); }, 'save_access_token' => function ($token) use($m) { // 用户需要自己实现access_token的保存 $m->set('access_token', $token, 0); })); // 获取微信消息 $msg = $wechat->serve(); error_log(json_encode($msg), 0); // 默认消息 $default_msg = <<<EOF /微笑 欢迎关注本测试号: 回复1: 回复文本消息 回复2: 回复图片消息 回复3: 回复语音消息 回复4: 回复视频消息 回复5: 回复音乐消息 回复6: 回复图文消息