Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

class AsyncTwilioHttpClient takes "proxy_url" parameter, but does not use it for anything. #788

Open
skyler-guha opened this issue Apr 16, 2024 · 1 comment
Labels
status: work in progress Twilio or the community is in the process of implementing

Comments

@skyler-guha
Copy link

skyler-guha commented Apr 16, 2024

Issue Summary

I work behind a firewall and use a proxy to make requests. I wanted to send messages asynchronously using twilio and followed the steps here in the documentation to make asynchronous message sending requests. I used the "proxy_url" parameter of the AsyncTwilioHttpClient class to specify my proxy url string in the form "http://xxx.xxx.xxx.xxx:xxxx". It did not work and i got an error saying "cannot connect to host api.twilio.com 443".

My first assumptions were that maybe the proxy url string format I had used was wrong, or maybe it is a proxy/firewall issue on our end.
I was able to send synchronous messages just fine using the proxy, so that was not the issue. Then I looked at the code for AsyncTwilioHttpClient and found that while it is taking the proxy string, It is not actually doing anything with it. You may confirm the same here at the github page for the code.

Am I doing something wrong here? Am I missing something?
Am I supposed to use a different way to specify the proxy to use for AsyncTwilioHttpClient?

Code Snippet for asynchronous messaging (gives error):

from twilio.http.async_http_client import AsyncTwilioHttpClient
from twilio.rest import Client

async def main():
    account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    auth_token  = "your_auth_token"
    http_client = AsyncTwilioHttpClient(proxy_url= "http://xxx.xxx.xxx.xxx:xxxx")
    client = Client(account_sid, auth_token, http_client=http_client)

    message = await client.messages.create_async(to="+1xxxxxxxxxx", from_="+1xxxxxxxxxx",
                                                 body="Hello there!")

    print(message.sid)

asyncio.run(main())

Code Snippet for synchronous messaging (does not give error):

from twilio.http.http_client import TwilioHttpClient
from twilio.rest import Client

def main():
    account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    auth_token  = "your_auth_token"
    http_client = TwilioHttpClient(proxy= {"http" : "http://xxx.xxx.xxx.xxx:xxxx"})
    client = Client(account_sid, auth_token, http_client=http_client)

    message = client.messages.create(to="+1xxxxxxxxxx", from_="+1xxxxxxxxxx",
                                                 body="Hello there!")
    print(message.sid)

main()

Exception/Log

twilio_error

Technical details:

  • twilio-python version: 9.0.0
  • python version: 3.10
@tiwarishubham635
Copy link
Contributor

I can take a look

@tiwarishubham635 tiwarishubham635 added the status: work in progress Twilio or the community is in the process of implementing label May 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status: work in progress Twilio or the community is in the process of implementing
Projects
None yet
Development

No branches or pull requests

2 participants