From 7bdd4e50ccc14569fd202c9cb6ec8f250e61a8ed Mon Sep 17 00:00:00 2001 From: coolneng Date: Wed, 18 Mar 2020 20:56:06 +0100 Subject: [PATCH] Twilio API draft --- .gitignore | 1 + Pipfile | 11 +++++++ README.org | 3 ++ src/Pipfile | 12 +++++++ src/Pipfile.lock | 84 ++++++++++++++++++++++++++++++++++++++++++++++++ src/twilio.py | 32 ++++++++++++++++++ 6 files changed, 143 insertions(+) create mode 100644 .gitignore create mode 100644 Pipfile create mode 100644 README.org create mode 100644 src/Pipfile create mode 100644 src/Pipfile.lock create mode 100644 src/twilio.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c9fd099 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +src/constants.py diff --git a/Pipfile b/Pipfile new file mode 100644 index 0000000..b5846df --- /dev/null +++ b/Pipfile @@ -0,0 +1,11 @@ +[[source]] +name = "pypi" +url = "https://pypi.org/simple" +verify_ssl = true + +[dev-packages] + +[packages] + +[requires] +python_version = "3.8" diff --git a/README.org b/README.org new file mode 100644 index 0000000..8225f4f --- /dev/null +++ b/README.org @@ -0,0 +1,3 @@ +* odapi + +Collection of APIs needed for Odyfo's mobile apps diff --git a/src/Pipfile b/src/Pipfile new file mode 100644 index 0000000..c377e73 --- /dev/null +++ b/src/Pipfile @@ -0,0 +1,12 @@ +[[source]] +name = "pypi" +url = "https://pypi.org/simple" +verify_ssl = true + +[dev-packages] + +[packages] +twilio = "*" + +[requires] +python_version = "3.8" diff --git a/src/Pipfile.lock b/src/Pipfile.lock new file mode 100644 index 0000000..6f82f4a --- /dev/null +++ b/src/Pipfile.lock @@ -0,0 +1,84 @@ +{ + "_meta": { + "hash": { + "sha256": "6e5fe7005bbfd900bf7dd3c4a0858830cdf9cfe46eae017d3d27378e0588dd74" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3.8" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "certifi": { + "hashes": [ + "sha256:017c25db2a153ce562900032d5bc68e9f191e44e9a0f762f373977de9df1fbb3", + "sha256:25b64c7da4cd7479594d035c08c2d809eb4aab3a26e5a990ea98cc450c320f1f" + ], + "version": "==2019.11.28" + }, + "chardet": { + "hashes": [ + "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae", + "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691" + ], + "version": "==3.0.4" + }, + "idna": { + "hashes": [ + "sha256:7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb", + "sha256:a068a21ceac8a4d63dbfd964670474107f541babbd2250d61922f029858365fa" + ], + "version": "==2.9" + }, + "pyjwt": { + "hashes": [ + "sha256:5c6eca3c2940464d106b99ba83b00c6add741c9becaec087fb7ccdefea71350e", + "sha256:8d59a976fb773f3e6a39c85636357c4f0e242707394cadadd9814f5cbaa20e96" + ], + "version": "==1.7.1" + }, + "pytz": { + "hashes": [ + "sha256:1c557d7d0e871de1f5ccd5833f60fb2550652da6be2693c1e02300743d21500d", + "sha256:b02c06db6cf09c12dd25137e563b31700d3b80fcc4ad23abb7a315f2789819be" + ], + "version": "==2019.3" + }, + "requests": { + "hashes": [ + "sha256:43999036bfa82904b6af1d99e4882b560e5e2c68e5c4b0aa03b655f3d7d73fee", + "sha256:b3f43d496c6daba4493e7c431722aeb7dbc6288f52a6e04e7b6023b0247817e6" + ], + "version": "==2.23.0" + }, + "six": { + "hashes": [ + "sha256:236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a", + "sha256:8f3cd2e254d8f793e7f3d6d9df77b92252b52637291d0f0da013c76ea2724b6c" + ], + "version": "==1.14.0" + }, + "twilio": { + "hashes": [ + "sha256:c7d99b87a1d3ed5d49638e45509edad7fe10d030d4b5239c5af805b0a2043ad9" + ], + "index": "pypi", + "version": "==6.36.0" + }, + "urllib3": { + "hashes": [ + "sha256:2f3db8b19923a873b3e5256dc9c2dedfa883e33d87c690d9c7913e1f40673cdc", + "sha256:87716c2d2a7121198ebcb7ce7cccf6ce5e9ba539041cfbaeecfb641dc0bf6acc" + ], + "version": "==1.25.8" + } + }, + "develop": {} +} diff --git a/src/twilio.py b/src/twilio.py new file mode 100644 index 0000000..a3bb12c --- /dev/null +++ b/src/twilio.py @@ -0,0 +1,32 @@ +from twilio.rest import Client +from secrets import randbits +from constants import account_id, token + + +def connect_api(): + account_sid = account_id + auth_token = token + client = Client(account_sid, auth_token) + return client + + +def generate_code(): + bits = 16 + code = randbits(range) + return code + + +def create_otp(receiver): + client = connect_api() + code = generate_code() + sender = "+18555345401" + message = "Your OTP code is {0}".format(code) + call = client.calls.create(to=receiver, from_=sender, body=message) + + +def main(): + create_otp("") + + +if __name__ == "__main__": + main()