使用Python发送WhatsApp信息的具体过程

1,064 阅读3分钟

使用Python发送WhatsApp信息

WhatsApp现在已经开放了它的API,所以你不再需要通过合作伙伴来发送和接收WhatsApp消息!在这篇博文中,我们将看看如何使用Python开始发送WhatsApp消息。

在这篇博文中,我们将看看如何使用Python开始发送WhatsApp消息,我们将使用一个例子,在CI/CD构建管道失败时发送WhatsApp消息。

设置Meta应用程序

首先,你需要按照这个页面上的指示来做。

  • 注册成为Meta开发者
  • 为您的账户启用双因素认证
  • 创建一个Meta应用--你需要为WhatsApp创建一个商业应用

一旦您完成了这些,请进入您的应用程序并设置WhatsApp产品。

Set Up WhatsApp

您会得到一个临时的访问令牌和一个电话号码ID,记下这些,因为您以后会需要它们。设置您自己的电话号码作为收件人,您可以尝试给自己发送一个测试信息。

Send Test Message

设置信息模板

在上面的测试信息中,你使用了"hello_world" 的模板。你需要为自己的目的设置自己的模板。如果您进入WhatsApp管理器中的 "信息模板",您可以建立自己的模板,您可以看到这里我们有一些样本,但也建立了我们自己的模板"build_pipeline_failure"

Message Templates

这个模板有。

  • 一个标题,通知用户构建失败了
  • 一个包含2个变量的正文,我们可以为我们的信息提供动态的变量,这样用户就可以知道哪一个构建失败了,是谁触发的
  • 一个行动呼吁链接,允许他们直接进入构建状态页面

Build Failure Template

一旦你的模板被批准,你就可以开始使用它了!

(请注意,您的模板可能需要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消息模板,并在构建失败后发送一个消息。下面是我在手机上看到的情况。

WhatsAppScreenshot