!!! DAS SCRIPT IST NUR IN EINER GESICHERTEN UMGEBUNG ZU NUTZEN !!! Das Speichern von Zugangsdaten auf öffentlichen Servern stellt ein hohes Risiko da! Nenninger N-Tools.de * 20.06.2023 -> neue Parameter und devid darf keine Zeichen sondern nur Buchstaben und Zahlen enthalten * 13.09.2023 -> cookie Datei und Login.dat umbenannt * 19.09.2023 -> $_SERVER['SERVER_NAME'] wird wenn nicht da auf Hostname gesetzt * 20.09.2023 -> get_channel_messages korrigiert (limit, offset) * 26.09.2023 -> löschen von Dateien eingebaut; * 31.10.2023 -> Fehler beim speichern der Logins gefixt * V1.13 26.11.2023 -> open_conversation eingebaut * V1.14 -> 231220 sendmsg: Text wird jetzt als Markdown formatiert markiert (Parameter "metainfo") * V1.15 -> 240208 Die Logindaten und der Keks werden jetzt von der php Datei aus im Unterverzeichnis /data gespeichert (muss von Hand erstellt werden) * V1.16 -> 240820 neue Funktion "download_file($_id)" * V1.17 -> 241021 nach Update auf 6.8.0 gibt es bei der Message Location kein "encryptet" mehr (if(isset($message->location->encrypted)) eingebaut) * V1.18 -> 241030 nach Update auf 6.8.0 sind bei der ChannelInfo keine Mitglieder mehr dabei. Abfrage geändert; * 12.12.2025 Umzug auf gitea Formatierungen Markdown: *fett* ~durchgestrichen~ `monospace` geschützte Leerzeichen (0x00A0) alt+0160 hermine@THW PHPConnector inspiriert von https://gitlab.com/aeberhardt/stashcat-api-client curl und php >= 7.4 Funktionen: get_last_error(); login(soll der Login gespeichert werden); get_companies_list(); -> List der Firmen (wird beim Login erstellt) get_conversations_list(); -> List der Konversationen (wird beim Login erstellt) get_channels_list(); -> List der Kanäle (1. Firma) (wird beim Login erstellt) send_message_to_conversation(id,Nachricht,optional URLs als array, optional Standort als Array); send_message_to_channel(id,Nachricht,optional URLs als array, optional Standort als Array); send_message_with_file_to_conversation(id,Nachricht,Dateiinhalt (max 5MB),Dateiname in Hermine,Type Bsp:'image/jpeg',Breite Standard 0,Höhe Standard 0); send_message_with_file_to_channel(id,Nachricht,Dateiinhalt (max 5MB),Dateiname in Hermine,Type Bsp:'image/jpeg',Breite Standard 0,Höhe Standard 0); get_channel_messages(id, $_limit=50, $_offset=0); -< array get_conversation_messages(id,limit=50,offset=0); -< array get_channel_infos($_channel_id); -< array search_user($_searchby, $_limit=50, $_offset=0); -< array list_uploaded_chat_files($_search); -< array download_file($_id) -< array delete_files($_ids=[]) -< boolean open_conversation($_members) -< array Beispiel "Login, Chats holen, Nachricht mit Datei senden": $hermine = new hermineConnect('mailadresse','Accountpassword','Verschlüsselungskennwort'); if($hermine->login(true) !== false){ $array = $hermine->get_companies_list(); print_r($array); $array = $hermine->get_conversations_list(); print_r($array); $array = $hermine->get_channels_list(); print_r($array); $file = file_get_contents('./ich.jpg'); $hermine->send_message_with_file_to_channel(165562,'jpg per php',$file,'test.jpg','image/jpeg',1080,2068); }else{ //login fehlgeschlagen print_r($hermine->get_last_error); } Beispiel "Login und Prüfen ob Mitglieder in Channels vorhanden sind": $hermine = new hermineConnect('mailadresse','Accountpassword','Verschlüsselungskennwort'); if($hermine->login(true) !== false){ $quasselgruppe = $hermine->get_channel_infos(110266); $content .= 'die Quasselgruppe hat '.count($quasselgruppe->members).' Mitglieder'; //AnkündigungsCHannel 209674 $gruppe = $hermine->get_channel_infos(209674); $content .= 'der Ankündigungschannel hat '.count($gruppe->members).' Mitglieder'; $array = $hermine->search_user('(OV Alzenau)',200,0); $content .= '(OV Alzenau) haben '.count($array).' Mitglieder im Nachnamen'; $content .= ''; foreach($array as $user){ $content .= '\n"; } }else{ //login fehlgeschlagen print_r($hermine->get_last_error); } Beispiel "Login und Konversation erstellen" *wenn diese schon vorhanden ist, wird die schon vorhandene zurück gegeben*: $hermine = new hermineConnect('mailadresse','Accountpassword','Verschlüsselungskennwort'); if($hermine->login(true) !== false){ $ret = $hermine->open_conversation([ ['id'=>xxxxxxx,'public_key'=>'-----BEGIN PUBLIC KEY-----hier muss der Publickey rein (kann mit search_user geholt werden )-----END PUBLIC KEY-----'], ['id'=>xxxxxxx,'public_key'=>'-----BEGIN PUBLIC KEY-----hier muss der Publickey rein (kann mit search_user geholt werden )-----END PUBLIC KEY-----'], ... ]); print_r($ret); }else{ print_r($hermine->get_last_error); }
HelfendeQuasselgruppeAnkündigungs Gruppe
'.$user->first_name.' '.$user->last_name; $content .= ""; $uQG = array_column($quasselgruppe->members, null, 'id')[$user->id] ?? false; if($uQG !== false){ $content .= 'X'; } $content .= ""; $uAG = array_column($gruppe->members, null, 'id')[$user->id] ?? false; if($uAG !== false){ $content .= 'X'; } $content .= "