Prep python with correct packages. `pip install Flask twilio sqlite3 ` Create a SQuLite Database: ``` CREATE TABLE group_members ( id INTEGER PRIMARY KEY AUTOINCREMENT, group_id TEXT NOT NULL, phone_number TEXT NOT NULL ); ``` This is just an empty database. Add some contacts to contact: ``` INSERT INTO group_members (group_id, phone_number) VALUES ('group1', '+1234567890'); INSERT INTO group_members (group_id, phone_number) VALUES ('group1', '+0987654321'); ``` We add some contacts who will be contacted when the endpoint has data sent to it. Create a flask app. Call it flasky.py. ```from flask import Flask, request, jsonify import sqlite3 from twilio.rest import Client app = Flask(__name__) # Twilio credentials (fill these with your own credentials) TWILIO_ACCOUNT_SID = 'your_account_sid' TWILIO_AUTH_TOKEN = 'your_auth_token' TWILIO_PHONE_NUMBER = 'your_twilio_phone_number' # Initialize Twilio client twilio_client = Client(TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN) # Function to query phone numbers by groupID def get_phone_numbers_by_group(group_id): try: # Connect to SQLite database conn = sqlite3.connect('groups.db') cursor = conn.cursor() # Query the database for phone numbers associated with the groupID cursor.execute("SELECT phone_number FROM group_members WHERE group_id = ?", (group_id,)) phone_numbers = [row[0] for row in cursor.fetchall()] # Close the connection conn.close() return phone_numbers except Exception as e: print(f"Database error: {e}") return [] # Function to send SMS using Twilio def send_sms(phone_number, message_body): try: message = twilio_client.messages.create( body=message_body, from_=TWILIO_PHONE_NUMBER, to=phone_number ) return message.sid except Exception as e: print(f"Twilio error: {e}") return None # Route to handle GET requests with a groupID parameter @app.route('/send_message', methods=['GET']) def send_message(): group_id = request.args.get('groupID') message = request.args.get('message', 'Hello from our service!') if not group_id: return jsonify({"error": "groupID parameter is required"}), 400 # Get phone numbers associated with the groupID phone_numbers = get_phone_numbers_by_group(group_id) if not phone_numbers: return jsonify({"error": "No phone numbers found for this groupID"}), 404 # Send the message to each phone number sent_messages = [] for number in phone_numbers: message_sid = send_sms(number, message) if message_sid: sent_messages.append({"phone_number": number, "message_sid": message_sid}) return jsonify({"status": "Messages sent", "details": sent_messages}), 200 if __name__ == '__main__': app.run(debug=True) ```