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

时间:2017-06-29 03:40:02

标签: python python-3.x twilio twilio-api

我今天开始使用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()作为可能的解决方案,但完全不知道如何实现它。

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

谢谢。

1 个答案:

答案 0 :(得分:-1)

诀窍是传入一个自定义的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)