Skip to main content

Texting python package which utilizes TextNow.

Project description

TextNow API

TNAPI is a python module that uses TextNow to enable free programmable texting

Installation

Method One: Using git clone

git clone https://github.com/WuGomezCode/TextNow-API.git

Method Two: Using pip

pip install PyTextNow

Note: If there is an unexplained error with the pip install, try adding the --user flag to it.

Edit: New Note: The first time using this module will require firefox to authenticate TextNow. It may or may not provide a recaptcha for you to do once.

*Edit: New Note: The first authentication process uses geckodriver.exe. The module installs geckodriver.exe for windows. However if you are on MacOS or Linux, install your OS specific version of GeckoDriver and specify the path when instantiating Client

Usage

How to send an sms message

import TNAPI

client = TNAPI.Client("Email address", "Password", "Name") #The name is used for the message storing.

client.send_sms("18006969420", "Hello World!")

How to send an mms message

file_path = "./img.jpeg"
client.send_mms("18006969420", file_path)

How to get new messages

new_messages = client.get_new_messages() -> List
for message in new_messages:
    print(message)
    # Class Message | Class MultiMediaMessage
    # Message
    # content: "body of sms"
    # number: "number of sender"
    # date: datetime object of when the message was received
    # first_contact: bool if its the first time that number texted you
    # type: int 0 if class is Message and 1 if class is MultiMediaMessage

    # MultiMediaMessage
    # number: "number of sender"
    # date: datetime object of when the message was received
    # first_contact: bool if its the first time that number texted you
    # type: int 0 if class is Message and 1 if class is MultiMediaMessage
    # url: "url of the media"
    # raw_data: bytes of the media
    # content_type: str the MIME type ie. "image/jpeg" or "video/mp4"
    # extension: str of the file extension is. "jpeg" or "mp4"
    # Functions
    # mv(file_path): downloads the file to file_path

    print(message.number)
    print(message.content)

    # MultiMediaMessage

    print(message.content_type)
    message.mv("./image." + message.extension)

How to get all received messages

messages = client.get_messages() -> List
# Same as above

How to get all sent messages

sent_messages = client.get_sent_messages() -> List
#Same as above

Custom Module Exceptions

InvalidFileType:

When using send_mms() if the file type is not an image or video it will raise this Exception

FailedRequest:

This API runs on web requests and if the request fails this Exception will be raised

Patch Notes

0.9

  • Using Message and MultiMediaMessage classes instead of dictionary for /get_new_messages/get_sent_messages
  • get_messages still returns old dictionary
  • Fixed user_sids.json overwrite problem

0.8

  • Fixed the receiving messages. Now working 100%

0.7

  • Added FailedRequest and InvalidFileType errors to Client instance

0.5

  • bug fixes

0.4

  • Added Client = TNAPI.Client in __init__.py
  • Fixed the failed login import in TNAPI.py

0.3

  • Receiving messages are better but not good

0.2

  • Nothing much

0.1

  • Initial Commit
  • Can send messages and photos/videos
  • receiving messages a work in progress

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

PyTextNow-0.9.2.tar.gz (1.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

PyTextNow-0.9.2-py3-none-any.whl (1.5 MB view details)

Uploaded Python 3

File details

Details for the file PyTextNow-0.9.2.tar.gz.

File metadata

  • Download URL: PyTextNow-0.9.2.tar.gz
  • Upload date:
  • Size: 1.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.9.1

File hashes

Hashes for PyTextNow-0.9.2.tar.gz
Algorithm Hash digest
SHA256 a8642ee9be4141b06b8637c9172b66a3efc3e53ce2eb6eae138952ffeccf4a02
MD5 c1a7607bf4d7990333448f9db40f4297
BLAKE2b-256 95913c2fc405cdfd34f05a853d68b7bc48d0dcbb65781910092213fbbff8add1

See more details on using hashes here.

File details

Details for the file PyTextNow-0.9.2-py3-none-any.whl.

File metadata

  • Download URL: PyTextNow-0.9.2-py3-none-any.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.9.1

File hashes

Hashes for PyTextNow-0.9.2-py3-none-any.whl
Algorithm Hash digest
SHA256 77da044de52c6619ee61193e73ea315d47078c72ab7847126d00f3963d9bc5b5
MD5 821b629d9df5b21788724aed39ec1f75
BLAKE2b-256 380440d2a2366a3beadc830181e2730827698f9b133980dd1017c2f44f7aa52e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page