使用Python发送WhatsApp信息
WhatsApp现在已经开放了它的API,所以你不再需要通过合作伙伴来发送和接收WhatsApp消息!在这篇博文中,我们将看看如何使用Python开始发送WhatsApp消息。
在这篇博文中,我们将看看如何使用Python开始发送WhatsApp消息,我们将使用一个例子,在CI/CD构建管道失败时发送WhatsApp消息。
设置Meta应用程序
首先,你需要按照这个页面上的指示来做。
- 注册成为Meta开发者
- 为您的账户启用双因素认证
- 创建一个Meta应用--你需要为WhatsApp创建一个商业应用
一旦您完成了这些,请进入您的应用程序并设置WhatsApp产品。
您会得到一个临时的访问令牌和一个电话号码ID,记下这些,因为您以后会需要它们。设置您自己的电话号码作为收件人,您可以尝试给自己发送一个测试信息。
设置信息模板
在上面的测试信息中,你使用了"hello_world"
的模板。你需要为自己的目的设置自己的模板。如果您进入WhatsApp管理器中的 "信息模板",您可以建立自己的模板,您可以看到这里我们有一些样本,但也建立了我们自己的模板"build_pipeline_failure"
。
这个模板有。
- 一个标题,通知用户构建失败了
- 一个包含2个变量的正文,我们可以为我们的信息提供动态的变量,这样用户就可以知道哪一个构建失败了,是谁触发的
- 一个行动呼吁链接,允许他们直接进入构建状态页面
一旦你的模板被批准,你就可以开始使用它了!
(请注意,您的模板可能需要48小时才能被批准。)
发送你的信息
现在你都设置好了,你可以发送你的信息了。
在我们的第一个单元中,我们定义了我们的电话号码ID,访问令牌和收件人的电话号码。
在[1]中。
phone_number_id = "" # Phone number ID provided
access_token = "" # Your temporary access token
recipient_phone_number = "" # Your own phone number
然后,我们将定义我们要进行POST HTTP请求的URL和这个请求的标题。
在[2]中。
url = f"https://graph.facebook.com/v13.0/{phone_number_id}/messages"
headers = {
"Authorization": f"Bearer {access_token}",
'Content-Type': 'application/json'
}
现在我们定义我们要在WhatsApp信息中填写的参数。
这里我们模拟作者 "Ben Keen "导致构建管道号 "2022.1 "失败。
在[3]中。
build_number = '2022.1'
build_author = 'Ben Keen'
msg_body_params = [
{
"type": "text",
"text": build_number
},
{
"type": "text",
"text": build_author
}
]
然后我们用这个来填写我们的消息正文的其余部分,包括我们要发送的号码,我们要发送的模板和我们希望我们的消息以哪种语言发送。
在[4]中。
data = {
'messaging_product': 'whatsapp',
'to': recipient_phone_number,
'type': 'template',
'template': {
'name': 'build_pipeline_failure',
'language': {
'code': 'en'
},
'components': [
{
'type': 'body',
'parameters': msg_body_params
}
]
}
}
现在我们用我们的URL、标头和消息正文做一个POST请求,提出我们的请求。
在[5]中。
import json
import requests
response = requests.post(
url,
headers=headers,
data=json.dumps(data)
)
如果一切顺利的话,我们应该会收到一条WhatsApp信息
我们也可以通过运行以下程序来检查我们是否收到了一个200的HTTP响应代码。
In [6]:
response.ok
Out[6]:
True
这就是我们的成果!一个基本的示范,我们可以设置一个WhatsApp消息模板,并在构建失败后发送一个消息。下面是我在手机上看到的情况。