Использовать авторизацию через класс в другом файле для каждого пользователя телеграмм python

есть такой код.

С помощью класса я обращаюсь к апи сайта, первоначально авторизовываясь. Как привязать class к каждому отдельному пользователю тг

import urllib
import hashlib
import requests

def md5(string: str):
  return hashlib.md5 (''.join(string).encode ('utf-8')).hexdigest ()

class Manager():

    token = ''
    cookies = {}

    def __init__(self, login : str, password : str, schoolId: int):
        self.login = login,
        self.password = password,
        self.schoolId = schoolId
        self.auth(login, password, schoolId)

    def send(self, path: str, method: str = 'get', params: dict = {}, contentType: str = 'x-www-form-urlencoded', headers: dict = {}, withToken: bool = True, returnJson: bool = True):
        with requests.Session() as session:
            cookie: list[str] = []
            for name, value in self.cookies.items ():
                cookie.append (f'{name}={value}')

            # https://developer.mozilla.org/ru/docs/Web/HTTP/Headers
            session.headers = {
                **headers,
                'at': self.token if withToken else None,
                'content-type': f'application/{contentType}; charset=UTF-8',
                # cookies are required to access certain addresses
                'cookie': '; '.join (cookie)
            }

            if (method == 'get'):
                res = session.get (f'https://giseo.rkomi.ru/webapi/{path}', params=params)
            else:
                res = session.post (f'https://giseo.rkomi.ru/webapi/{path}', data=urllib.parse.urlencode (params) if contentType == 'x-www-form-urlencoded' else json.dumps (params))
            
            if (res.status_code == 200):
                # get new cookies from 'set-cookie' header from response and update self.cookies dictionary
                # Set-Cookie header: https://developer.mozilla.org/ru/docs/Web/HTTP/Headers/Set-Cookie
                self.cookies.update (res.cookies.get_dict ())
                return res.json () if returnJson else res
            elif (res.status_code == 401):
                self.auth ()
                return self.send (path, method, params, contentType, headers, withToken, returnJson)
            elif (res.status_code == 409):
                raise Exception ('Incorrect username or password')
            
    def getSchool(self):
        prepareloginform : dict = self.send("prepareloginform", 'get')
        print("Города: ")
        for state in prepareloginform['provinces']:
            print(state['id'], state['name'])
        print("----------------------------------------------------------------------")
        
        while True:
            pid = input("Выберите ID города >>>")
            cn : str = self.send(f"loginform?cid=2&sid=11&pid={pid}&LASTNAME=pid")
            if cn['items'] != []:
                cn = cn['items'][0]['id']
                break
            else:
                print("Неверный код города")
        sft : str = self.send(f"loginform?cid=2&sid=11&pid={pid}&cn={cn}&LASTNAME=cn")
        
        print("Тип ОО:")
        for item in sft['items']:
            print(item['id'], item['name'])
        print("----------------------------------------------------------------------")

        while True:
            sft = input("Выберите ID Типа ОО >>>")   
            scid : dict = self.send(f"loginform?cid=2&sid=11&pid={pid}&cn={cn}&sft={sft}&LASTNAME=sft")
            if scid['items'] == []:
                print("Неверный ID ОО")
            else: 
                break
        print("ОО:")
        ids = []
        for item in scid['items']:
            ids.append(str(item['id']))
            print(item['id'], item['name'])
        while True:
            scid : str = input("Выберите ID ОО >>>")
            if scid in ids:
                return scid
        

    def auth(self, login, password, schoolId = None):
        getData : dict = self.send("auth/getdata", "post", headers={}, withToken=False)

        self.lt = getData.get('lt', 'None')
        salt = getData.get('salt', 'None')
        self.ver = getData.get('ver', 'None')

        password = md5 (salt + md5 (password))
        self.scid = self.getSchool() if schoolId == None else schoolId

        params = {
            'LoginType': '1',
            'scid': self.scid,
            'UN': login,
            'lt': self.lt,
            'pw2': password,
            'ver': self.ver
        }

        login : dict = self.send("login", "post", params=params, headers={"Referer": 'https://giseo.rkomi.ru/about.html'}, withToken=False)

        self.loginData = login
        self.token = login['at']

    def getAnnouncements(self, count : int):
        return self.send(f'announcements?take={count}')
    def getClassmates(self):
        params = {
            'classId': self.getClassId(),
            'group': 7,
            'orgType': 1,
            'organizationId': self.scid,
        }
        return self.send('mail/recipients', 'get', params)
    

    def getYearId(self):
        return self.send('years/current')['id']
    def getGlobalYearId(self):
        return self.send('years/current')['globalYearId']
    def getStudentId(self):
        return self.loginData['accountInfo']['user']['id']
    def getStudentName(self):
        return self.loginData['accountInfo']['user']['name']
    def getClassId(self):
        return self.send('reports/studenttotal')['filterSources'][1]['defaultValue']
    def getClassName(self):
        return self.send('reports/studenttotal')['filterSources'][1]['items'][0]['title']
    def getVer(self):
        return self.ver
    def getAt(self):
        return self.token
    def logout(self):
        return self.send('auth/logout', 'post', returnJson=False)

student = Manager("login", 'password', 10)
for index, classmates in enumerate(student.getClassmates()):
    print(index+1, classmates['name'])

student.logout()

Ответы (0 шт):