webuntis api probleme mi

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Kopaker
User
Beiträge: 3
Registriert: Samstag 30. Oktober 2021, 15:24

Hi,
ich versuche das webuntis unserer Schule mit einer der API zu lesen.
folgender Fehler kommt bei mir immer vor:

Code: Alles auswählen

Traceback (most recent call last):
  File "C:\Users\titus\Desktop\untis bot.py", line 3, in <module>
    s = webuntis.Session(                   #neue Sitzung auf untis servern
  File "C:\Users\titus\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\webuntis\session.py", line 607, in __init__
    JSONRPCSession.__init__(self, **config)
  File "C:\Users\titus\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\webuntis\session.py", line 31, in __init__
    self.config.update(config)
  File "C:\Users\titus\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\webuntis\utils\misc.py", line 111, in update
    self[key] = value
  File "C:\Users\titus\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\webuntis\utils\misc.py", line 96, in __setitem__
    filter = self.filters[key]
KeyError: 'useragend'

das ist mein code:

Code: Alles auswählen

import webuntis

s = webuntis.Session(
    server='webuntis.grupet.at:8080',
    username='username',
    password='Passwort',
    school='Staatliche Feintechnikschule',
    useragend='Webuntis'
)

#Sitzungs Login

s.login()                   

for klasse in s.klassen():
    print (klasse.name)

s.logout()
Kann mir da Jemand sagen was ich falsch mache ?
Benutzeravatar
sls
User
Beiträge: 480
Registriert: Mittwoch 13. Mai 2015, 23:52
Wohnort: Country country = new Zealand();

Es muss wohl `useragent` heißen. Sieh dir den traceback mal genauer an.
When we say computer, we mean the electronic computer.
Kopaker
User
Beiträge: 3
Registriert: Samstag 30. Oktober 2021, 15:24

sls hat geschrieben: Samstag 30. Oktober 2021, 16:51 Es muss wohl `useragent` heißen. Sieh dir den traceback mal genauer an.
Danke hat mir weitergeholfen :D
Bekomme nur leider jetzt den Fehler angezeigt:

Code: Alles auswählen

Traceback (most recent call last):
  File "C:\Users\titus\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\webuntis\utils\remote.py", line 158, in _send_request
    result_data = json.loads(result)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.2032.0_x64__qbz5n2kfra8p0\lib\json\__init__.py", line 346, in loads
    return _default_decoder.decode(s)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.2032.0_x64__qbz5n2kfra8p0\lib\json\decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.2032.0_x64__qbz5n2kfra8p0\lib\json\decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 14 column 1 (char 13)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\titus\Desktop\untis bot.py", line 13, in <module>
    s.login()
  File "C:\Users\titus\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\webuntis\session.py", line 91, in login
    res = self._request('authenticate', {
  File "C:\Users\titus\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\webuntis\session.py", line 118, in _request
    data = rpc_request(self.config, method, params or {})
  File "C:\Users\titus\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\webuntis\utils\remote.py", line 84, in rpc_request
    result_body = _send_request(
  File "C:\Users\titus\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\webuntis\utils\remote.py", line 161, in _send_request
    raise errors.RemoteError('Invalid JSON', result)
webuntis.errors.RemoteError: [Errno Invalid JSON] 












<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="expires" content="0">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <meta name="viewport" id="app-viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <title>WebUntis</title>

    <script type="text/javascript">
        window.untisUIVersion = 2;
        window.untisMomentLocale= "de";
        window.untis__webpack_public_path__ = "https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/";
        untis = {
            config: {"mode":"STANDARD","locale":"de","contextPath":"/WebUntis","licence":{"name":"Staatliche Feintechnikschule ","name2":"D-78054 Villingen-Schwenningen"},"mandantName":"FTS-Villingen-Schwenningen","mandant":16570,"customerNumber":54037,"imageServiceConfig":{"customLogo":true},"loginServiceConfig":{"ssoType":"none","samlProviderLabel":"","idpName":"","loginError":"","lastUserName":"","lastMandantName":"FTS-Villingen-Schwenningen","anonymousMode":true,"userRegistrationEnabled":false,"user":{"name":"anonym","id":-1,"departmentId":0,"roleId":0,"userGroupId":0,"personId":-1,"persons":[{"id":-1,"type":0,"displayName":"","longName":"","foreName":""}],"email":""},"ssoOffice365":false,"adminEmail":null,"hideWuLogin":false,"oidcProviderLabel":null,"ssoOidc":false},"staticResourcesUrl":"https://content.webuntis.com/WebUntis/static/2022.3.1","calendarServiceConfig":{"today":null,"currentDate":"2021-10-31","currentSchoolyearId":12,"schoolyears":[{"finalMarkActive":true,"semesters":[],"startDate":"2016-09-12","schoolyearId":6,"endDate":"2017-07-26","name":"2016/2017","id":6},{"finalMarkActive":true,"semesters":[],"startDate":"2017-09-11","schoolyearId":8,"endDate":"2018-07-25","name":"2017/2018","id":8},{"finalMarkActive":true,"semesters":[],"startDate":"2018-09-10","schoolyearId":9,"endDate":"2019-07-26","name":"2018/2019","id":9},{"finalMarkActive":true,"semesters":[],"startDate":"2019-09-11","schoolyearId":10,"endDate":"2020-07-29","name":"2019/2020","id":10},{"finalMarkActive":true,"semesters":[],"startDate":"2020-09-14","schoolyearId":11,"endDate":"2021-07-28","name":"2020/2021","id":11},{"finalMarkActive":true,"semesters":[],"startDate":"2021-09-13","schoolyearId":12,"endDate":"2022-07-27","name":"2021/2022","id":12}],"holidays":[{"bookingAllowed":false,"startDate":"2021-11-01","endDate":"2021-11-07","longName":"Herbstferien","name":"Herbst"},{"bookingAllowed":false,"startDate":"2021-12-25","endDate":"2022-01-09","longName":"Weihnachtsferien","name":"Weihnachten3"},{"bookingAllowed":false,"startDate":"2022-02-25","endDate":"2022-03-02","longName":"Fasnetsferien","name":"Fasnet"},{"bookingAllowed":false,"startDate":"2022-04-11","endDate":"2022-04-24","longName":"Osterferien","name":"Ostern"},{"bookingAllowed":false,"startDate":"2022-06-06","endDate":"2022-06-19","longName":"Pfingstferien","name":"Pfingsten"},{"bookingAllowed":false,"startDate":"2021-10-03","endDate":"2021-10-03","longName":"3.10.2021","name":"TDDE"},{"bookingAllowed":false,"startDate":"2021-12-23","endDate":"2021-12-23","longName":"Weihnachtsferien","name":"Weihnachten1"},{"bookingAllowed":false,"startDate":"2021-12-24","endDate":"2021-12-24","longName":"Weihnachtsferien","name":"Weihnachten2"},{"bookingAllowed":false,"startDate":"2022-05-26","endDate":"2022-05-26","longName":"Christi Himmelfahrt","name":"26.5."}],"showWeekNumbers":true,"weekendDays":[0],"firstDayOfWeek":1,"minNumberOfDaysInFirstWeek":4},"serviceDescriptors":{"jsonBookingService":{"url":"jsonBookingService","methods":["changeBookingDate","getBookableRooms","isValidBookingId"]},"jsonStudentLessonMatrixService":{"url":"jsonStudentLessonMatrixService","methods":["getFilter","load","save"]},"jsonStudentgroupService":{"url":"jsonStudentgroupService","methods":["getStudentLessonPeriodMatrix","submitStudentLessonPeriodData"]},"jsonTeacherService":{"url":"jsonTeacherService","methods":["getEmailAddressesOfTeachers","updateTeacherVarQuota","updateTeacherVarStatus","getAllTeacherStatuses"]},"jsonLessonTopicService":{"url":"jsonLessonTopicService","methods":["renumberLessonTopics"]},"jsonUserProfileService":{"url":"jsonUserProfileService","methods":["activateTotp","getTotpKey","setNewAdminDetails","deactivateTotp","getPasswordRules","generateTotpKey","isTotpEnabled"]},"jsonHomeworkService":{"url":"jsonHomeworkService","methods":["save","deleteHomework"]},"jsonStudentDutyService":{"url":"jsonStudentDutyService","methods":[]},"jsonAddressService":{"url":"jsonAddressService","methods":["getMobileNumberAvailability","readFor","save","deleteAddress"]},"jsonKlasseService":{"url":"jsonKlasseService","methods":["getUserIdsOfKlassen","getStudentIdsOfKlassen","getTeacherIdsOfKlassen","getPersonIdsOfKlassen"]}},"publicAppAccessAllowed":false,"appCredentials":{"url":"arche.webuntis.com","school":"FTS-Villingen-Schwenningen","user":"#anonymous#","key":null,"qrText":"untis://setschool?url=arche.webuntis.com&school=FTS-Villingen-Schwenningen&user=#anonymous#&schoolNumber=5403700","schoolNumber":5403700},"appColors":[{"id":1,"labelKey":"LBL_FREE_HOUR","backColor":"#eceded"},{"id":2,"labelKey":"IDC_LESSON","backColor":"#f49f25"},{"id":3,"labelKey":"LBL_NOT_CONFIRMED","backColor":"#d7dd7a"},{"id":4,"labelKey":"LBL_ACTIVITY","backColor":"#b0bc00"},{"id":5,"labelKey":"LBL_STORNO_BK","backColor":"#f3c480"},{"id":6,"labelKey":"LBL_HOUR_NOT_ALLOWED","backColor":"#b1b3b4"},{"id":7,"labelKey":"LBL_HOLIDAY_BK","backColor":"#53aedd"},{"id":8,"labelKey":"LBL_HOLIDAY_NO_BK","backColor":"#a2d8f4"},{"id":9,"labelKey":"HDR_CONFLICT_LIST","backColor":"#e53527"},{"id":10,"labelKey":"LBL_SUBSTITUTION","backColor":"#a781b5"},{"id":11,"labelKey":"LBL_CANCELLED","backColor":"#b1b3b4"},{"id":12,"labelKey":"LBL_WITHOUT_ELEM","backColor":"#b1b3b4"},{"id":13,"labelKey":"LBL_ELEM_CHANGED","backColor":"#a781b5"},{"id":14,"labelKey":"LBL_SHIFT","backColor":"#a781b5"},{"id":15,"labelKey":"LBL_SPECIALDUTY","backColor":"#a781b5"},{"id":16,"labelKey":"LBL_EXAM","backColor":"#ffed00"},{"id":17,"labelKey":"IDC_BREAKSUPERVISION","backColor":"#ea6ea3"},{"id":18,"labelKey":"IDC_STANDBY","backColor":"#f49f25"},{"id":19,"labelKey":"IDC_OFFICEHOUR","backColor":"#f49f25"},{"id":20,"labelKey":"LBL_ABSENCE","backColor":"#e53527"},{"id":21,"labelKey":"LBL_WORKTIME","backColor":"#a4fa9e"}],"forceAdminDetailsChange":false,"timetableConfig":{"weeklyElementTypes":[]},"contentUrl":null,"kioskMode":false,"departmentServiceConfig":{"globalDepartmentFilterEnabled":false,"globalDepartmentId":0,"departments":[]},"messageServiceConfig":{"unreadCount":0,"messageCenterNewView":false,"can":{"readMessage":null,"sendMessage":null,"createDistributionList":null}},"menuConfig":[{"children":[],"lbl":"LBL_TODAY","action":{"args":["main"],"cmd":"loadContent"},"id":10,"group":0},{"children":[],"lbl":"IDM_TT_TIMETABLE","id":1,"group":0}],"userServiceConfig":{"roles":[],"searchAllowed":false,"mustSetupGoogleAuthenticator":false,"googleAuthenticatorSetupLoginRetries":0,"isGoogleAuthenticatorSet":false,"locale":"de"},"timetablingConfig":null,"inputAssistantConfig":{"active":false,"stepTimetablingCompleted":true},"canEditMessageOfDay":false,"ttSidebarMinimized":false,"isBackupWarningEnabled":false,"messengerAppData":null,"messengerFeedbackUrl":null,"messengerAdsEnabled":true,"messengerAdsUrl":"https://messenger.untis.at","sessionTimeout":3600,"testSchedule":false,"navItems":["TODAY"],"embedNewUI":false,"schoolAdminHasMessengerButton":true,"schoolHasMessengerModule":true,"hasOneDrive":false,"oneDriveClientId":"d4acf9ca-5400-48f0-96db-e356769fa9fb","hasMessenger":false,"isMessengerWebSocketDisabled":false,"isIgnoreMessengerEmergencyStoppedForMobileAuth":true,"isMessengerManualActivationRequired":false,"isMessengerEmergencyStopped":false,"hasMessengerBeenActivated":true,"canOfferMessengerTrial":false,"hasStartedMessengerTrial":true,"messengerTrialDaysLeft":0,"isAdmin":false,"isDirectorate":false,"isStaff":false,"isTeacher":false,"isWUSSO":false,"schoolQueryUrl":"https://webuntis.com","isPlayground":false,"isIntegrationsDisabledMessage":null,"runningPollingJobs":[],"pollingConfig":[{"pollingType":"REPORT","pollingInterval":5000}],"playgrounds":[],"imprintUrl":"https://www.untis.at/HTML/impressum.php","hasPrivacyPolicy":false,"csrfHeader":"X-CSRF-TOKEN","csrfToken":"46ae1889-694c-4d99-a881-fd63e9ebfe7b","ui2020":true,"isUI2020ActiveForCurrentUser":false,"isNewStudentNavigationActive":true,"isMessageWeb2021FeatureFlagEnabled":true,"isLegalGuardianMasterDataFlagEnabled":false},
        };
        // R�ckw�rtskompatibilit�t
        window.dojoConfig = {grupet: untis.config};
    </script>
    <script type="text/javascript" src="https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/moment/moment.min.js"></script>


    <script type="text/javascript" src="https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/moment/locale/de.js"></script>
    <script type="text/javascript">moment.locale("de");</script>


    
    <script type="text/javascript" src="https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/webpack.js"></script>

    
    <script type="text/javascript" src="https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/react.js"></script>
    <script type="text/javascript" src="https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/ramda.js"></script>
    <script type="text/javascript" src="https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/rx.js"></script>
    <script type="text/javascript" src="https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/ag-grid.js"></script>
    <script type="text/javascript" src="https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/draft-js.js"></script>
    <script type="text/javascript" src="https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/immutable.js"></script>




    

    <script type="text/javascript">
        // IE 9 console patch
        var method;
        var noop = function () {};
        var methods = [
            'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',
            'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',
            'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',
            'timeStamp', 'trace', 'warn'
        ];
        var length = methods.length;
        var console = (window.console = window.console || {});

        while (length--) {
            method = methods[length];

            // Only stub undefined methods.
            if (!console[method]) {
                console[method] = noop;
            }
        }

        // IE 10 Fix
        if (window.navigator.language === undefined) {
            window.navigator.language = window.navigator.userLanguage;
        }
    </script>

    <link rel="shortcut icon" type="image/x-icon" href="https://content.webuntis.com/WebUntis/static/2022.3.1/Images/favicon.ico">
    <link rel="stylesheet" type="text/css" href="https://content.webuntis.com/WebUntis/static/2022.3.1/Styles/icons.css">
    <link rel="stylesheet" href="/WebUntis/appColor/viewColors.css">

    
    <link rel="stylesheet" type="text/css" href="https://content.webuntis.com/WebUntis/static/2022.3.1/Styles/font-awesome.css">
    <style type="text/css">
        @font-face {
            font-family: "Noto Sans";
            src: url(https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/fonts/NotoSans-Regular.ttf) format("truetype");
        }
        @font-face {
            font-family: "Space Grotesk";
            src: url(https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/fonts/SpaceGrotesk-Regular.ttf) format("truetype");
        }
        @font-face {
            font-family: "UNIcons";
            src: url(https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/fonts/UNIcons.woff) format("woff");
        }
        @font-face {
            font-family: 'AvenirNextW05';
            font-weight: 400;
            src: url(https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/fonts/AvenirNextW05-Regular.eot?#iefix);
            src: url(https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/fonts/AvenirNextW05-Regular.eot?#iefix) format('eot'), url(https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/fonts/AvenirNextW05-Regular.woff2) format('woff2'), url(https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/fonts/AvenirNextW05-Regular.woff) format('woff'), url(https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/fonts/AvenirNextW05-Regular.ttf) format('truetype');
        }
        @font-face {
            font-family: 'AvenirNextW05';
            font-weight: 600;
            src: url(https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/fonts/AvenirNextW05-Demi.eot?#iefix);
            src: url(https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/fonts/AvenirNextW05-Demi.eot?#iefix) format('eot'), url(https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/fonts/AvenirNextW05-Demi.woff2) format('woff2'), url(https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/fonts/AvenirNextW05-Demi.woff) format('woff'), url(https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/fonts/AvenirNextW05-Demi.ttf) format('truetype');
        }

        @font-face {
            font-family: 'AvenirNextW05';
            font-weight: 700;
            src: url(https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/fonts/AvenirNextW05-Bold.eot?#iefix);
            src: url(https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/fonts/AvenirNextW05-Bold.eot?#iefix) format('eot'), url(https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/fonts/AvenirNextW05-Bold.woff2) format('woff2'), url(https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/fonts/AvenirNextW05-Bold.woff) format('woff'), url(https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/fonts/AvenirNextW05-Bold.ttf) format('truetype');
        }
    </style>
    <link rel="stylesheet" type="text/css" href="https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/styles/main.css">
</head>
<body class="untis-bootstrap">
<!--[if lt IE 9]>
<div style="background: yellow; padding: 5px;">
    
        
            <a href="https://content.webuntis.com/WebUntis/static/2022.3.1/html/browser-not-supported-de.html" style="text-decoration: none; color: black;">
                Ihr Browser wird von WebUntis eventuell nicht unterst�tzt - klicken Sie hier f�r weitere Informationen!
            </a>
        
        
    
</div>
<![endif]-->

    


<script src="https://content.webuntis.com/WebUntis/static/2022.3.1/js/socket.io-2.1.1.js"></script>

<div id="app">
    WebUntis wird geladen ...
</div>


<script>
    untis.messages = {};
    function define(nameOrMessages, messages) {
        if (typeof nameOrMessages === "object") {
            messages = nameOrMessages;
        }
        // Object.assign polyfill wird erst sp�ter geladen. Daher werden die Messages hier direkt eingemischt.
        for (var p in messages) {
            untis.messages[p] = messages[p];
        }
    }
</script>
<script type="text/javascript" src="https://content.webuntis.com/WebUntis/static/2022.3.1/js/grupet/nls/de/messages.js"></script>


<script type="text/javascript" src="https://content.webuntis.com/WebUntis/static/2022.3.1/js/untis/main.js"></script>
</body>
</html>
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

In Zeile 13 versuchst du dich einzuloggen. Das Modul, das du verwendest macht einen Request zu einem Webserver und erwartet als result ein JSON content. Es kommt aber keines oder ungültigen JSON. Mehr kann man aus der Fehlermeldung nicht herauslesen.
Kopaker
User
Beiträge: 3
Registriert: Samstag 30. Oktober 2021, 15:24

sparrow hat geschrieben: Sonntag 31. Oktober 2021, 15:35 In Zeile 13 versuchst du dich einzuloggen. Das Modul, das du verwendest macht einen Request zu einem Webserver und erwartet als result ein JSON content. Es kommt aber keines oder ungültigen JSON. Mehr kann man aus der Fehlermeldung nicht herauslesen.
Ok danke für die Hilfe :)
Antworten