使用C++发送WhatsApp消息的指南

在Secured Globe, Inc.,一直在寻找一种简单的API,用于向程序员团队发送WhatsApp消息。市场上有许多服务提供商,选择了其中一个名为WhatsAppMate的服务,并开始了免费试用。然而,他们提供的代码示例几乎涵盖了所有编程语言,唯独没有C++。因此,决定自己编写一个C++类来实现这一功能。请继续阅读第二部分以了解更多详情。

WhatsApp是一个跨平台的免费聊天服务,支持视频、语音通话以及向个人或群组发送消息,包括文件、媒体等。与旧的短信服务相比,WhatsApp不仅免费,还具有更多功能。在日常工作中,需要设置各种提醒,自动发送给共享工作或共同开发功能的工作组,这使得收到通知变得非常方便。

使用代码

对于GitHub仓库,请参阅和。可以发送的消息类型包括个人或群组消息,以及是否附带照片或PDF文件。可以在上了解更多信息。

构建基础

以下是需要具备的构建块。稍后,将附加一个编译好的(.exe)测试应用程序。

首先,打开一个互联网连接并连接到API服务:

C++ hOpenHandle = InternetOpen(_T("HTTP"), INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); if (hOpenHandle == NULL) { return false; } hConnectHandle = InternetConnect(hOpenHandle, GROUP_API_SERVER, INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 1); if (hConnectHandle == NULL) { InternetCloseHandle(hOpenHandle); return false; }

接下来,打开一个请求:

C++ const wchar_t *AcceptTypes[] = { _T("application/json"), NULL }; HINTERNET hRequest = HttpOpenRequest(hConnectHandle, _T("POST"), GROUP_API_PATH, NULL, NULL, AcceptTypes, 0, 0); if (hRequest == NULL) { InternetCloseHandle(hConnectHandle); InternetCloseHandle(hOpenHandle); return false; }

接下来,使用以下代码设置头部:

C++ std::wstring HeaderData; HeaderData += _T("X-WM-CLIENT-ID: "); HeaderData += _T(CLIENT_ID); HeaderData += _T("\r\nX-WM-CLIENT-SECRET: "); HeaderData += _T(CLIENT_SECRET); HeaderData += _T("\r\n"); HttpAddRequestHeaders(hRequest, HeaderData.c_str(), HeaderData.size(), NULL);

现在准备向群组发送消息:

C++ std::wstring WJsonData; WJsonData += _T("{"); WJsonData += _T("\"group_admin\":\""); WJsonData += groupAdmin; WJsonData += _T("\",\"group_name\":\""); WJsonData += groupName; WJsonData += _T("\",\"message\":\""); WJsonData += message; WJsonData += _T("\""); WJsonData += _T("}"); const std::string JsonData(WJsonData.begin(), WJsonData.end()); bResults = HttpSendRequest(hRequest, NULL, 0, (LPVOID)(JsonData.c_str()), JsonData.size());

接收者将看到类似这样的WhatsApp消息:但为了确保一切顺利,需要查询Http请求的结果。如果成功,期望的StatusText是"OK"。

C++ TCHAR StatusText[BUFFER_LENGTH] = {0}; DWORD StatusTextLen = BUFFER_LENGTH; HttpQueryInfo(hRequest, HTTP_QUERY_STATUS_TEXT, &StatusText, &StatusTextLen, NULL); bResults = (StatusTextLen && wcscmp(StatusText, L"OK")==FALSE);

使用SGWhatsApp类

现在可以看到如何使用类。

C++ #include "SGWhatsApp.h" int _tmain(int argc, _TCHAR* argv[]) { SGWhatsApp sender; sender.SendGroupMessage(GroupAdmin, GroupName, _T("hi")); return 0; }
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485