|
| 1 | +import os |
| 2 | +from urllib import parse |
| 3 | + |
| 4 | +import requests |
| 5 | +from dotenv import load_dotenv, find_dotenv |
| 6 | +from flask import Flask, redirect, jsonify, request |
| 7 | + |
| 8 | +ZOOM_OAUTH_AUTHORIZE_API = 'https://zoom.us/oauth/authorize?response_type=code' |
| 9 | + |
| 10 | +ZOOM_TOKEN_API = 'https://zoom.us/oauth/token?grant_type=authorization_code' |
| 11 | + |
| 12 | +load_dotenv(find_dotenv()) |
| 13 | + |
| 14 | +app = Flask(__name__) |
| 15 | + |
| 16 | +PORT = 4000 |
| 17 | + |
| 18 | + |
| 19 | +@app.route('/') |
| 20 | +def get_token(): |
| 21 | + try: |
| 22 | + if request.args.get('code'): |
| 23 | + code = request.args.get('code') |
| 24 | + redirect_url = os.environ["redirectURL"] |
| 25 | + |
| 26 | + url = ZOOM_TOKEN_API + '&code=' + code + '&redirect_uri=' + parse.quote_plus(redirect_url) |
| 27 | + |
| 28 | + response = requests.post(url=url, auth=(os.environ.get("clientID"), os.environ.get('clientSecret'))) |
| 29 | + if response.status_code == 200: |
| 30 | + response_json = response.json() |
| 31 | + refresh_token_ = response_json['refresh_token'] |
| 32 | + |
| 33 | + with open("refresh_token.txt", "w") as f: |
| 34 | + f.write(refresh_token_) |
| 35 | + return jsonify("refresh token saved") |
| 36 | + |
| 37 | + else: |
| 38 | + print("get auth code failed") |
| 39 | + response = app.response_class(status=500) |
| 40 | + return response |
| 41 | + else: |
| 42 | + # redirecting |
| 43 | + print("redirecting to authorize app") |
| 44 | + return redirect(location=ZOOM_OAUTH_AUTHORIZE_API + '&client_id=' + os.environ.get( |
| 45 | + "clientID") + '&redirect_uri=' + os.environ["redirectURL"]) |
| 46 | + except Exception as e: |
| 47 | + print(e.__str__()) |
| 48 | + response = app.response_class(status=500) |
| 49 | + return response |
| 50 | + |
| 51 | + |
| 52 | +if __name__ == '__main__': |
| 53 | + app.run(port=PORT) |
0 commit comments