如何用Python发送彩信图片

多媒体消息服务 (MMS) 图片和视频消息是用于发送文本消息的短消息服务 (SMS) 系统的常见扩展。使用带有 Python 的 Web 应用程序编程接口 (API) 可以轻松地从 Web 应用程序或脚本发送 MMS 消息。在这个简短的教程中,我们将学习如何向新的或现有的 Python 应用程序添加 MMS 发送功能。

我们需要的工具

Python 2 或 3 适用于本教程中的代码。只需转到终端并键入python --version,确保您的系统上安装了这两个版本之一。本教程的其他依赖项包括:

  • Python 版本 2 或 3
  • pip 和 virtualenv 来处理一个应用程序依赖性
  • 一个免费的 Twilio 帐户来使用他们的 MMS web API
  • Twilio Python 助手库,版本6.0.0或更高版本

如果您不确定如何安装 pip 和 virtualenv,请查看如何在 Ubuntu 16.04 LTS 上设置 Python 3、Flask 和 Green Unicorn 指南的前几个步骤。

Twilio 网络 API

我们简单的 Python 示例应用程序将使用 Twilio Web API 发送图片消息。转到 Twilio 网站注册一个免费试用帐户。如果您已经有一个 Twilio 帐户(您应该有一个,因为它可以很容易地向应用程序添加几乎任何类型的通信!)然后登录您现有的帐户。

在试用模式下,Twilio 可以将彩信发送到与帐户关联的经过验证的电话号码。当您准备好向任何国家/地区的任何电话发送彩信时,您将必须升级您的帐户。

注册 Twilio 帐户后,您将收到您自己的电话号码,用于发送消息。该电话号码无需任何配置即可发送出站彩信。它还可以接收消息,但这需要在电话号码详细信息屏幕中修改请求 URL webhook。

安装我们的依赖

我们将使用 twilio 帮助程序库作为 Python 代码的依赖项。可以通过 pip 命令安装帮助程序库,该命令将代码从 PyPI 拉到我们的本地 virtualenv 中。在本教程中,我们将我们的虚拟环境命名为pymms,但您可以为您的应用程序命名任何名称。

我们必须在使用之前创建 virtualenv。在您的终端中输入:

virtualenv pymms

如果您需要安装 virtualenv,请查看如何在 Ubuntu 16.04 LTS 上设置 Python 3、Django 和 Green Unicorn 指南。

使用source命令激活virtualenv。

source pymms/bin/activate

激活后命令提示符会变成这样:

现在安装 Twilio Python 帮助程序库。确保安装版本 6.0.0 或更高版本,因为此代码的语法与 6.0.0 之前的早期帮助程序库版本相比有所变化。

pip install twilio>=6.0.0

一旦安装了帮助程序库,我们就可以在我们的 Python 代码中使用它。

从 Python 发送彩信

通过在终端中执行python 命令启动 Python 解释器。如果你想在我们尝试后重新使用代码,你也可以创建一个名为 send_mms.py 的新文件。

我们需要从 Twilio 控制台获取我们的帐户凭据,以将我们的 Python 代码连接到我们的 Twilio 帐户。转到 Twilio 控制台并将帐户 SID 和身份验证令牌复制到您的 Python 代码中。

将以下代码输入到新的 Python 文件中,或从这个包含所有博客代码示例的 GitHub 存储库中复制它。

# import the Twilio client from the dependency we just installed
from twilio.rest import Client

# the following line needs your Twilio Account SID and Auth Token
client = Client("ACxxxxxxxxxxxxxx", "zzzzzzzzzzzzz")

# this is the URL to an image file we're going to send in the MMS
media = "https://raw.githubusercontent.com/mattmakai/fullstackpython.com/master/static/img/logos/f.png"

# change the "from_" number to your Twilio number and the "to" number
# to the phone number you signed up for Twilio with, or upgrade your
# account to send MMS to any phone number that MMS is available
client.api.account.messages.create(to="+19732644152",
                                   from_="+12023351278",
                                   body="MMS via Python? Nice!",
                                   media_url=media)

上面所有以# 开头的行都是注释,为您提供每行所执行操作的一些上下文。在将代码输入解释器或使用 python send_mms.pyTwilio 运行 Python 脚本后,Twilio 将发送您的彩信。

几秒钟后,您应该会看到一条消息出现在您的手机上 – 请注意,彩信可能需要更长的时间,因为您的手机必须下载图片。我使用的是 iPhone,所以这是我收到消息时的样子:

这就是将彩信发送到手机所需的一切。几行 Python 代码的结果非常棒,对吧?可以将此代码添加到任何 Python 程序中以发送出站彩信。

最后一点:对您的 Twilio Auth Token 保密,否则任何获得它的人都可以通过您的帐户发送和接收消息。

有问题吗?通过 Twitter@fullstackpython 或@mattmakai 与我联系。我也在 GitHub 上,用户名是 mattmakai。

看到这篇文章有什么问题了吗?在 GitHub 上创建此页面的源代码并提交拉取请求。

赞(0) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏