taniele / whatsapi
WhatsApp 消息服务器的 PHP 接口
Requires
- php: >=5.3
- ext-curl: *
Suggests
- williamson/larawhatsapi: A laravel Wrapper for WhatsApi
This package is not auto-updated.
Last update: 2024-09-10 03:04:55 UTC
README
WhatsApp 消息服务器接口
在打开新问题之前请阅读 wiki 和以前的问题!也许你的问题已经被解答。
特别感谢
我想感谢所有让这个项目不断前进的人。首先我要感谢 @shirioko(别名 hero),当我加入项目时,我对什么都不懂,是他介绍我进入了项目。他长期以来一直负责 API,他一直是个英雄!现在轮到我了,我希望我能做得尽可能好,让这个 API 更好。
我还想感谢所有与我合作并做出如此出色工作的用户
比特币: 15NejBDahfe1eLAPSJh4iMfYLHYuKDrwJ2
2014年10月7日更新
这将成为 WhatsAPI 的官方仓库。我们不支持垃圾邮件,也不会回答诸如“拦截”或“发送大量消息”的问题。
最新更新
- 自动令牌更新器:它使用私有服务器生成令牌。当执行 API 时,它将始终检查最新令牌、用户代理和版本。
- 身份生成已更改:现在使用 random_pseudo_bytes,在 WhatsApp 对象中,你设置的 identity 值是身份将要保存的文件名。我建议将你的手机号码作为 identity 设置。
2014年3月15日更新
由于 DCMA 下架 导致短暂的停机后,源代码已恢复。
2013年7月30日备注
新政策
我不再为试图使用此 API 发送大量消息的用户提供支持(即大量消息,而不是内置的大规模消息功能)。 在 WhatsApp 上发送广告直接违反他们的 EULA,我无法确定用户是否试图发送垃圾邮件、广告或向“自愿用户”发送大量消息。 我也不想浪费我那一点点的空闲时间,试图找出方法来破坏这个名为 WhatsApp 的美丽无广告平台,通过允许人们发送垃圾邮件。 每个人都可以使用此 API,但将不再有关于向半随机用户发送消息后被拦截的问题报告。
以下是我从 Heath Ledger 饰演小丑(完全脱离上下文)的名言
这不是关于钱,这是关于发送消息。
- shirioko
2013年7月14日备注
事件重命名
- 在事件处理系统中,许多事件已被重命名,以更好地匹配最近的方法名称。
- 所有事件名称和参数均已列在 EVENTS.md 文件中
2013年7月10日备注
代码的重大重写
- 大多数方法重命名!旧遗产代码将损坏,我们很抱歉,但这是为了提供一个更清晰的接口。请检查新代码。
- 方法重命名以使 API 感觉更一致 - 所有方法现在都是 camelCase,请注意拼写错误!
- 开始将代码与PSR-2(《http://www.php-fig.org/psr/2/》)对齐
- 此代码中绝对不需要/输入MAC地址或IMEI。不要尝试!
- 使用了新的Android令牌,因为WP7令牌似乎不再有效。WP7令牌永垂不朽?
2013年6月18日备注
代码进行了大规模重写。感谢以下人员
- Ali Hubail 和
- Ahmed Moh'd 使此项目得以实现(并将我作为成员加入)
- Jannik Vogel 帮助我获取最新的WhatsApp令牌,也许有一天应该有人写一本书来讲述这个过程..
- Tarek Galal 在yowsup中提供了最新的WhatsApp功能
- Atans 和
- Jonathan Williamson 对代码进行了额外的修复
- shirioko
什么是WhatsApp?
根据公司
“WhatsApp Messenger是一款跨平台手机即时通讯工具,可以取代短信,并通过设备现有的互联网数据计划进行工作。WhatsApp适用于iPhone、BlackBerry、Android、Windows Phone、Nokia Symbian60 & S40手机。因为WhatsApp Messenger使用的是您用于电子邮件和网页浏览的相同互联网数据计划,所以发送消息和与朋友保持联系不会产生费用。”
2011年底的数据:每天发送10亿条消息,约2000万用户。
修改后的XMPP
WhatsApp使用某种自定义XMPP服务器,内部称为FunXMPP,基本上是一个扩展的专有版本。
登录过程
与XMPP类似,WhatsApp使用JID(jabber id)和密码成功登录服务。密码由服务器生成,并在注册时接收。
JID是您的国家代码和手机号码的组合。
初始登录使用摘要访问认证。
消息发送
消息基本上以TCP数据包的形式发送,遵循WhatsApp自己的格式(与XMPP RFCs中定义的不同)。
消息使用RC4密钥流进行应用程序级加密
多媒体消息发送
与WhatsApp联系人共享的照片、视频和音频文件在发送给收件人之前,会通过HTTP上传到服务器,同时附带媒体文件的Base64缩略图(如果适用)以及生成的HTTP链接作为消息正文。
事件系统
WhatsApi使用事件管理器(由facine创建),允许您响应某些事件。
事件列表和绑定事件处理器的示例代码:https://github.com/shirioko/WhatsAPI/wiki/WhatsApi-events
常见问题解答
-
代码中到处都是十六进制字符是什么意思?
主要是WhatsApp的专有控制字符/命令,或根据其服务器规格进行格式化的数据,存储在客户端预定义的字典中。
-
您的未来开发计划是什么?
我们没有任何计划。
-
它能在网络上运行吗?
我们在Tornado Web Server上测试了一个稍微修改过的版本,效果非常好,但是构建聊天客户端有点棘手,请进行研究。
-
我能接收聊天吗?
当然,使用相同的套接字接收机制。但是您必须解析传入的数据。解析函数不包括在本版本中,也许在下一个版本中?
-
我认为代码很乱。
它正在工作。
-
我怎样才能获得我的密码?
使用WhatsAPI注册一个数字或使用MissVenom拦截您的手机密码
注意事项
-
这个概念验证程序可以扩展,包含所有使客户端完善的功能,类似于官方客户端,实际上甚至可能更好。
-
在分析服务机制的两周时间里,我们发现了一些严重的设计和安全隐患(他们从2011年起修复了一些)。对于一个拥有如此庞大用户群体的公司,我们期望看到更好的实践和工程。
许可证
MIT - 请参考源代码以获取额外的一行。
有毒
巴林开发者团队。
Ahmed Moh'd (fb.com/ahmed.mhd) 和 Ali Hubail (@hubail) 对这个版本做出了贡献。