热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

wechatphp,GitHubligboy/Wechatphp:本微信sdk实现了被动响应的官方api已经主动发送消息给订阅用户,主动批量发送消息给订阅用户。...

Wechat-php[DEPRICATED]呵呵,大家好。这个微信php类库来自于网络上多人智慧的结晶,特别是被动响应部分基本上都是来自于:

Wechat-php

[DEPRICATED]

呵呵,大家好。这个微信php类库来自于网络上多人智慧的结晶,特别是被动响应部分基本上都是来自于:dodgepudding。在此向那些牛人们致敬。 说明一下,我是个菜鸟,所以在代码上特别的凌乱,希望有热心人士指点。主动发送部分可能因为腾讯的调整失效,发现问题请联系我:ligboy#gmail.com

欢迎大家fork或者push

特别感谢

感谢各位的支持,很高兴能给你们提供一点思路。在很多问题上我都与pinghui大哥讨论,他给我提供了很多建议,我没有资格感谢,嘿嘿,因为这里包含了他的很多贡献,Wechat-php同样属于他。

特性说明

被动响应端没有什么好讲的,依旧是没有解决语音消息获取问题。

主动发送方面,群发的效率还是比较高的,测试,一次群发80条消息,耗时9950.0999ms,还是很不错的。主动发送单挑消息也没什么好讲的,跟大家的都差不多,只是这里要说如果大家要用,尽量建立一个消息队列,然后批量发送,这样的效率比较高,后面更新加入针对消息队列的批量发送,不仅仅是现在的群发同一条小时,另外谁有兴趣写一下可以提交一下。

这么久没有更新,其实是一直在测试比较重点的关联fakeid和openid的部分,现在放出其中的一种简单实现:被动响应依据时间戳判断关联fakeid与openid。

TODO LIST

采用另外一种主动方式获取关联fakeid与openid的关联。

使用方法

date_default_timezone_set('Asia/Shanghai');

include "../Wechat.class.php";

//加载设置文件

$wechatOptions = require('./configure.php');

$wechatObj = new Wechat($wechatOptions);

$wechatObj->valid();//可以在认证后注释掉(只是这样可能不安全)

$wechatObj->positiveInit(); //主动响应组件初始化

$wechatObj->setAutoSendOpenidSwitch(TRUE); //设置自动附带发送Openid

$wechatObj->setPassiveAscSwitch(TRUE, TRUE); //设置打开被动关联组件,并获取用户详细信息

$wechatObj->getRev();

//被动响应实例

$wechatObj->valid(); //验证请求来源是否合法,在通过平台验证后可以去掉,但是不安全啊。

$msgtype = $weObj->getRev()->getRevType();

switch(msg$type) {

case Wechat::MSGTYPE_TEXT:

$wechatObj->text("你好我是微信小机器人")->reply();

exit;

break;

case Wechat::MSGTYPE_EVENT:

$revEvent = array();

$revEvent = $this->wechatObj->getRevEvent();

switch ($revEvent['event']) {

//关注订阅事件

case "subscribe":

$wechatObj->text("你好我是微信小机器人")->reply();

break;

//取消关注订阅事件

case "unsubscribe":

//做一些删除用户记录之类的事情

break;

}

break;

case Wechat::MSGTYPE_IMAGE:

break;

case Wechat::MSGTYPE_VOICE:

break;

case Wechat::MSGTYPE_MUSIC:

break;

case Wechat::MSGTYPE_LOCATION:

break;

case Wechat::MSGTYPE_LINK:

break;

default:

$wechatObj->text($wechatObj->wechatObj)->reply();

}

//主动发送消息示例

//群发消息

$fakeids = array("823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881","823058881");

//接收返回结果数组

$batresult = $wechatObj->batSend($fakeids,"这是一种问候啊!\n下个10分钟再见。");

//单条消息发送

$singleresult = $wechatObj->send("823058881", "这是一种问候啊!");



推荐阅读
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 20211101CleverTap参与度和分析工具功能平台学习/实践
    1.应用场景主要用于学习CleverTap的使用,该平台主要用于客户保留与参与平台.为客户提供价值.这里接触到的原因,是目前公司用到该平台的服务~2.学习操作 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 有没有一种方法可以在不继承UIAlertController的子类或不涉及UIAlertActions的情况下 ... [详细]
  • 李逍遥寻找仙药的迷阵之旅
    本文讲述了少年李逍遥为了救治婶婶的病情,前往仙灵岛寻找仙药的故事。他需要穿越一个由M×N个方格组成的迷阵,有些方格内有怪物,有些方格是安全的。李逍遥需要避开有怪物的方格,并经过最少的方格,找到仙药。在寻找的过程中,他还会遇到神秘人物。本文提供了一个迷阵样例及李逍遥找到仙药的路线。 ... [详细]
  • 重入锁(ReentrantLock)学习及实现原理
    本文介绍了重入锁(ReentrantLock)的学习及实现原理。在学习synchronized的基础上,重入锁提供了更多的灵活性和功能。文章详细介绍了重入锁的特性、使用方法和实现原理,并提供了类图和测试代码供读者参考。重入锁支持重入和公平与非公平两种实现方式,通过对比和分析,读者可以更好地理解和应用重入锁。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 006_Redis的List数据类型
    1.List类型是一个链表结构的集合,主要功能有push,pop,获取元素等。List类型是一个双端链表的结构,我们可以通过相关操作进行集合的头部或者尾部添加删除元素,List的设 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 从Oracle安全移植到国产达梦数据库的DBA实践与攻略
    随着我国对信息安全和自主可控技术的重视,国产数据库在党政机关、军队和大型央企等行业中得到了快速应用。本文介绍了如何降低从Oracle到国产达梦数据库的技术门槛,保障用户现有业务系统投资。具体包括分析待移植系统、确定移植对象、数据迁移、PL/SQL移植、校验移植结果以及应用系统的测试和优化等步骤。同时提供了移植攻略,包括待移植系统分析和准备移植环境的方法。通过本文的实践与攻略,DBA可以更好地完成Oracle安全移植到国产达梦数据库的工作。 ... [详细]
author-avatar
清新之乄风666
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有