Python SMS Twilio 脚本必须通过代理墙



我今天开始使用Twilio for Python3,我发现甚至很难让第一个基本脚本工作。

send_sms.py

from twilio.rest import Client
# Your Account SID from twilio.com/console
account_sid = "your_account_sid"
# Your Auth Token from twilio.com/console
auth_token  = "your_auth_token"
client = Client(account_sid, auth_token)
message = client.messages.create(
    to="+15558675309", 
    from_="+15017250604",
    body="Hello from Python!")
print(message.sid)

send_sms.py是Twilio"入门"小组要求我测试的第一个程序。问题是我有一个带有用户名、密码和代理站点的代理网络。如果没有此连接,我会收到ConnectionRefusedError。经过几次测试后,我意识到无法连接到代理网络意味着程序失败。我知道使用ProxiedTwilioHttpClient((作为可能的解决方案,但完全不知道如何实现它。

我要求的是如何将代理网络身份验证添加到上面的代码示例中。我可以将该示例用于其他特定程序的将来参考。如果您有任何疑问,请随时在下面添加评论。

谢谢。

诀窍是传入一个自定义的 HttpClient,如下所示:

import os
from requests import Session
from twilio.rest import Client
from twilio.http.http_client import HttpClient
proxy_server = 'http://user:pass@proxy.example.com:80'
ProxySession = Session()
ProxySession.proxies.update({'http': os.environ.get('http_proxy', proxy_server)})
ProxyClient = HttpClient()
ProxyClient.session = ProxySession
account_sid = 'xxx'
account_token = 'xxx'
client = Client(account_sid, account_token, http_client=ProxyClient)

最新更新