127 lines
5.6 KiB
Plaintext
127 lines
5.6 KiB
Plaintext
!!! 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<table >';
|
|
$content .= '<tr><th>Helfende</th><th>Quasselgruppe</th><th>Ankündigungs Gruppe</th></tr>';
|
|
foreach($array as $user){
|
|
$content .= '<tr style="border-bottom: solid 1px;"><td>'.$user->first_name.' '.$user->last_name;
|
|
$content .= "</td><td>";
|
|
$uQG = array_column($quasselgruppe->members, null, 'id')[$user->id] ?? false;
|
|
if($uQG !== false){
|
|
$content .= 'X';
|
|
}
|
|
$content .= "</td><td>";
|
|
$uAG = array_column($gruppe->members, null, 'id')[$user->id] ?? false;
|
|
if($uAG !== false){
|
|
$content .= 'X';
|
|
}
|
|
$content .= "</td></tr>\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);
|
|
}
|