我想使用https://github.com/sigalor/whatsapp-web-reveng/存储库。在设置过程中,它需要 pycrypto 包,但我遇到了错误。我从stackoverflow和github问题上尝试了很多方法。
系统操作系统 - Windows 10 Python - 3.7.1
收集pycrypto
使用缓存的https://files.pythonhosted.org/packages/60/db/645aa9af249f059cc3a368b118de33889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz
安装收集的包:pycrypto
运行 setup.py install for pycrypto ... 错误
命令 c:\users\jmd\appdata\local\programs\python\python37-32\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\JMD\\AppData 的完整输出\\Local\\Temp\\pip-install-il7eha03\\pycrypto\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace(' \r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\JMD\AppData\Local\Temp\pip -record-ovghq181\install-record.txt --单一版本-外部管理--编译:
运行安装
运行构建
运行build_py
创建构建
创建 build\lib.win32-3.7
创建 build\lib.win32-3.7\Crypto
复制 lib\Crypto\pct_warnings.py -> build\lib.win32-3.7\Crypto
复制 lib\Crypto\__init__.py -> build\lib.win32-3.7\Crypto
创建 build\lib.win32-3.7\Crypto\Hash
复制 lib\Crypto\Hash\hashalgo.py -> build\lib.win32-3.7\Crypto\Hash
复制 lib\Crypto\Hash\HMAC.py -> build\lib.win32-3.7\Crypto\Hash
复制 lib\Crypto\Hash\MD2.py -> build\lib.win32-3.7\Crypto\Hash
复制 lib\Crypto\Hash\MD4.py -> build\lib.win32-3.7\Crypto\Hash
复制 lib\Crypto\Hash\MD5.py -> build\lib.win32-3.7\Crypto\Hash … 我使用它共享图像和文本,UIActivitycontroller它适用于设备中安装的所有应用程序,但在 中WhatsApp,它仅共享文本而不是图像。为什么?
所以,我必须在WhatsAppiOS 中一起共享图像和文本。
我遇到了一个名为GBWhatsapp的应用程序。它是由一些不知名的人开发的,有很多网站可以下载该 apk。由于某种原因,它并未正式出现在 Playstore 上。
令我惊讶的是,使用这个应用程序我实际上可以与使用官方 WhatsApp 应用程序的人聊天。
我做了一些谷歌搜索,发现它是原始 Whatsapp 应用程序的修改应用程序。它是建立在原始应用程序之上的。意味着某些人/开发人员/工程师反编译了原始 apk 并插入了他们的代码并以其他名称发布。
我的问题是,Whatapp APK 是否安全性如此之低,以至于一些工程师能够成功反编译它的 java 代码?他们提供了很多原始应用程序中没有的新功能?
我知道 apk 可以被反编译,但是如果原始开发团队混淆了代码(proguard 等)。那么对java代码进行逆向工程几乎是不可能的。这怎么发生的?
另外,如果它不是一个修改过的应用程序。意味着他们构建自己的应用程序,类似于whatsapp,然后他们如何向官方应用程序发送消息
所以我有一个编辑文本,将用作从用户获取电话号码的视图,假设电话号码是 +6123456789 ,我想检查这个号码是否有whatsapp号码,我想避免用户输入假的whatsapp号码,怎么办?
安装了whatasppp Business api,点击链接 https://developers.facebook.com/docs/whatsapp/installation
登录 https://localhost:9090/
注册时需要电话号码和证书。
设置 Whatsapp Business APP 的电话号码,然后在 Facebook 业务管理器中添加该号码。
但无法获得完成注册的证书。链接https://developers.facebook.com/docs/whatsapp/api/account中有说明 ,但无法遵循它,没有设置选项卡或 Whatsapp 管理器按钮来获取第三点中提到的证书。
有用的链接
嵌入式
https://www.facebook.com/business/help/2640149499569241
直接的
https://developers.facebook.com/docs/whatsapp/cloud-api/get-started
确认
对于我正在构建的网络应用程序,我需要集成文件共享功能。自 iOS 15 发布以来,这终于成为可能。然而,我只让它部分工作。当我通过电子邮件或消息共享文件时,它工作正常。但当我尝试与 Whatsapp、Signal 或 Threema 共享时,它只会共享标题,而不共享实际文件。我在控制台中没有看到任何错误,也没有看到任何失败的网络请求。
const audioResponse = await fetch(sound.downloadUrl);
const fileBuffer = await audioResponse.arrayBuffer();
const fileArray = [
new File([fileBuffer], name + '.mp3', {
type: 'audio/mpeg',
lastModified: Date.now(),
}),
];
if (
window.navigator.canShare &&
window.navigator.canShare({ files: fileArray })
) {
navigator
.share({
files: fileArray,
title: name,
text: 'File share test',
})
.then(() => {
console.log('Success!');
})
.catch(console.error);
}
Run Code Online (Sandbox Code Playgroud) 我想知道如何在 Flutterwebview应用程序中启动 WhatsApp 或从 Flutter 中的浏览器启动 WhatsApp,使用了许多代码,没有错误,但它们不起作用。我使用 mac m1 和 vscode
import 'package:coinpaga/Connectivity_Provider.dart';
import 'package:coinpaga/services/local_notification_service.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'homepage.dart';
import 'package:hexcolor/hexcolor.dart';
import 'package:colorful_safe_area/colorful_safe_area.dart';
/// Receive message when app is in background solution for on
message
Future<void> backgroundHandler(RemoteMessage message)async{
print(message.data.toString());
print(message.notification!.title);
}
void main() async {
WidgetsFlutterBinding.ensureInitialized();
LocalNotificationServices.initialize();
await Firebase.initializeApp();
FirebaseMessaging.onBackgroundMessage(backgroundHandler);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: [
ChangeNotifierProvider(
create: (context) => ConnectivityProvider(),
child: …Run Code Online (Sandbox Code Playgroud) 您好,我想在我的 Web 应用程序中使用 WhatsApp Business API。我已经在邮递员中测试过了。
每当在 WhatsApp 选项卡下的 Facebook 业务页面中运行示例curl 代码时,它都会成功运行,并使用临时访问令牌和通过 Facebook 保存的模板传递给收件人的消息。但是,当我仅向收件人发送短信时,API 响应会成功并显示消息 ID,但消息尚未发送给收件人。
我的curl代码示例如下
curl --location --request POST 'https://graph.facebook.com/v13.0/106433498743301/messages' \ --header 'Authorization: Bearer EAAOw8oNtvXkBAKk89CqJtyusjxk7c7qGSNS0quxqeZBRtjE5MYwZCK0USeGGLV4n56qNAuaRoRWZA2oCIS8zcz6U5UZAtQCOb6YQnjuXZBfLnyZAwsOZBpASpnNOvvz29T0Jn0aXgZAdo9VKmBv0CkNYuOeb1I7X0GZCEwLHPZBFpfOCj4K3S9CMPjBfYR5Jog06LC95P7UgCr5Fy2nqbRM5Ys' \ --header 'Content-Type: application/json' \ --data-raw '{ "messaging_product": "whatsapp", "preview_url": false, "recipient_type": "individual", "to": "xxxxxxx150", "type": "text", "text": { "body": "Test message" } }'
Run Code Online (Sandbox Code Playgroud) 目前我正在尝试围绕 Whatsapp Cloud API 制作一个薄包装器。我目前面临的问题之一是上传媒体文件无法正常工作。
查看上传文件的文档,似乎它需要将multipart/form-data有效负载发送到端点。
这是我当前的实现
import FormData from 'form-data';
import fs from 'fs';
import axios from 'axios';
const formData = new FormData();
formData.append('file', fs.createReadStream('path/to/my/file.jpg'));
formData.append('messaging_product', 'whatsapp');
formData.append('type', 'image/jpeg');
await axios.post('https://graph.facebook.com/v14.0/PHONE_NO_ID/media', formData, {
headers: { 'Authorization': ACCESS_TOKEN }
});
Run Code Online (Sandbox Code Playgroud)
看看它返回的错误,似乎我在某种程度上丢失了该messaging_product字段,即使我已将其正确添加到 formData 中。
{
"error": {
"message": "(#100) The parameter messaging_product is required.",
"type": "OAuthException",
"code": 100,
"fbtrace_id": "FBTRACE_ID"
}
}
Run Code Online (Sandbox Code Playgroud)
Postman集合用于上传媒体文件,所以我认为fileformData 的字段是问题所在。是fs.createReadStream在文件上相当于Postman处理文件上传的方式
编辑:问题已经解决,问题不是添加到 formData 生成的标题中,感谢下面的菲尔!
由于某种原因它不想发送按钮,我在网上查找但没有找到帮助,这是我的代码:
const { Client, LocalAuth ,MessageMedia, Buttons } = require('whatsapp-web.js');
const client = new Client({
authStrategy: new LocalAuth()
});
client.on('qr', qr => {
qrcode.generate(qr, {small: true});
});
client.on('ready', () => {
console.log('Client is ready!');
});
client.on('message', message => {
console.log('message from', message.from)
if (message.body === "!button") {
let button = new Buttons('Button body',[{body:'bt1'},{body:'bt2'},{body:'bt3'}],'title','footer');
client.sendMessage(message.from, button);
}
});
client.initialize();
Run Code Online (Sandbox Code Playgroud) whatsapp ×10
android ×3
javascript ×3
ios ×2
node.js ×2
apk ×1
axios ×1
cacerts ×1
certificate ×1
curl ×1
decompiling ×1
facebook ×1
flutter ×1
flutter-web ×1
form-data ×1
navigator ×1
php ×1
proguard ×1
pycrypto ×1
python-3.x ×1
web-share ×1
windows-10 ×1