如何使用Plivo的SMS API在Python中发送短信

514 阅读2分钟

你的公司已经选择了Plivo来处理其语音和消息通信,现在你的工作是开始将Plivo集成到你公司的应用程序中。别担心,Plivo有一个SDK来帮助你。让我们看看如何在Python应用程序中通过Plivo短信平台 发送接收信息。

找到你的认证ID和认证令牌

在使用Plivo API之前,你必须要有适当的证书。我们在你的Plivo控制台顶部的账户部分提供了一个授权ID和授权令牌。

选择一个电话号码

由于美国和加拿大的运营商规定,你需要一个支持短信的Plivo电话号码来向这些国家发送信息。查看你的Plivo控制台的号码屏幕,看看你有哪些号码可用,其中哪些支持短信功能。你也可以在这个屏幕上购买号码。

运营商遵循的短信规定因国家而异。对于向美国和加拿大以外的国家发送的信息,你可能想为你的信息注册一个字母数字的发件人ID。你可以了解更多关于字母数字发件人ID的使用,并从你的Plivo控制台注册一个。

发送短信

现在你可以开始了。你只需要几行代码就可以发送一条短信了。

import plivo

client = plivo.RestClient('<auth_id>','<auth_token>')
message_created = client.messages.create(
    src='+14151234567',
    dst='+14157654321',
    text='Hello, world!'
)

将占位符auth_idauth_token 替换为Plivo控制台中的实际值。将该文件保存为SendSMS.py。用以下命令运行它

$ python SendSMS.py

注意:如果你使用的是Plivo的试用账户,你只能向经过Plivo验证的电话号码发送消息。你可以使用控制台的沙盒号码页面来验证一个电话号码。

接收短信

当然,发送消息只是其中的一半。Plivo支持在许多国家接收短信(见我们的短信API覆盖页面,点击你感兴趣的国家)。当有人向Plivo的电话号码发送短信时,你可以通过使用Flask网络应用程序在你的服务器上接收它。

首先,可以选择建立一个虚拟环境,让这些包与你系统上的其他包隔离开来。然后创建一个名为receive_sms.py的文件(或任何你喜欢的名字),其中包含这段代码。

from flask import Flask, request

app = Flask(__name__)

@app.route('/receive_sms/', methods=['GET', 'POST'])
def inbound_sms():

    from_number = request.values.get('From')
    to_number = request.values.get('To')
    text = request.values.get('Text')
    print('Message received - From: %s, To: %s, Text: %s' %(from_number, to_number, text))

    return 'Message Recevived'

if __name__ == '__main__':
    app.run(host='0.0.0.0', debug=True)

用以下命令运行它

$ python receive_sms.py

然后,你应该能够在http://localhost:5000/receive\_sms/ 上看到你的基本服务器应用在运行。

这对测试来说很好,但如果你不能连接到互联网来接收传入的消息和处理回调,那就没有什么好处了。为此,我们推荐使用ngrok,它可以通过安全隧道将NAT和防火墙后面的本地服务器暴露在公共互联网上。安装它并在命令行上运行ngrok,指定承载你想接收消息的应用程序的端口。

Ngrok将显示一个转发链接,你可以用它来使用公共网络访问你的本地服务器。

结论

这就是使用Plivo的Python SDK发送和接收短信的全部内容。