carlosio/whatsapp

用于发送 WhatsApp 消息的 PHP 库

dev-master 2012-12-24 10:22 UTC

This package is auto-updated.

Last update: 2024-09-22 04:12:47 UTC


README

### 2019年9月29日备注

开发将恢复,让我们假装什么都没发生过。

有关最近的变化,请参阅 变更日志

WhatsAPI

WhatsApp 消息的接口

什么是 WhatsApp?

根据 公司

“WhatsApp 消息是跨平台的移动消息应用,取代了 SMS,并通过设备的现有互联网数据计划运行。WhatsApp 可用于 iPhone、BlackBerry、Android、Windows Phone、Nokia Symbian60 & S40 手机。因为 WhatsApp 消息使用与您用于电子邮件和网页浏览相同的互联网数据计划,所以发送消息和与朋友保持联系无需付费。”

2011 年后期数据:每天 10 亿条消息,约 2,000 万用户。

修改后的 XMPP

WhatsApp 使用某种定制的 XMPP 服务器,内部称为 FunXMPP,这基本上是某种扩展的专有版本。

登录流程

与 XMPP 类似,WhatsApp 使用 JID(Jabber ID)和密码成功登录服务。密码是哈希过的,碰巧是手机的 IMEI(国际移动设备身份码)或等效的唯一 ID 的反转版本,存储在创建账户的服务器上,并在每次客户端连接服务器时透明地使用。

JID 是您国家代码和手机号码的连接。

初始登录使用摘要访问认证。

消息发送

消息基本上以 TCP 数据包的形式发送,遵循 WhatsApp 自定义的格式(与 XMPP RFCs 中定义的不同)。

尽管使用了类似 SSL 的通信,但消息是以明文格式发送的。

多媒体消息发送

与 WhatsApp 联系人共享的图片、视频和音频文件在发送给接收者之前被 HTTP 上传到服务器,同时附带媒体文件的 Base64 缩略图(如有适用)以及生成的 HTTP 链接作为消息正文。

常见问题解答

  • 代码中为什么到处都是十六进制字符?

    主要是 WhatsApp 的专有控制字符/命令,或者根据服务器规范格式化的数据,存储在客户端的预定义字典中。

  • 你的未来开发计划是什么?

    我们没有任何计划。

  • 它能在网页上运行吗?

    我们已经在 Tornado Web Server 之上测试了一个略微修改的版本,运行得很好,但是构建一个聊天客户端有点棘手,请做些研究。

  • 我能接收聊天吗?

    当然,使用相同的套接字接收机制。但您必须解析传入的数据。解析函数不包括在本发行版中,可能在下一个版本中?

  • 我觉得代码很混乱。

    它正在工作。

  • 我怎样才能获得我的密码?

这取决于您的平台,例如,在 Android 上,您可以使用 TelephonyManager

TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
tm.getDeviceId();

当然,有足够的权限

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

密码概述

应用

  • WhatsAppify(截至2012年11月为封闭测试版。仅向Telepienso客户发送WhatsApp消息,当其包裹分配了跟踪号时。)

注意事项

  • 这个概念证明可以扩展,包含所有使客户端完整的功能,类似于官方客户端,实际上可能更好。

  • 在分析服务机制的两周内,我们发现了一些严重的设计和安全缺陷(他们自2011年以来修复了一些)。对于一个拥有如此庞大用户基的公司,我们期望更好的实践和工程。

  • PHP和JAVA端口完全工作。

许可证

MIT - 参考源代码获取额外行。

毒蛇

巴林开发者团队。

Ahmed Moh'd(fb.com/ahmed.mhd)和Ali Hubail(@hubail)为这次发布做出了贡献。