Webhook über Script auslösen

Hallo zusammen,

kann man über Mairlisteinen Webhook auslösen?

Zum Beispiel sowas: https://api.callmebot.com/whatsapp.php?phone=49xxxxxxxxxx&apikey=xxxxxxx&text=Mairlist Encoder nach Stilleerkennung getrennt

Ggf. müsste man einen solchen WQebhook über per Scipt auslösen?

Wer kann mir helfen? Ich bin für jeden Tipp dankbar!

Viele Grüße
Martin

Ich hab es bei mir wie folgt (mAirList-Script):

begin
	HTTPGet('https://WEBSERVER-IP/scripts/serviceError?instance=1&errorId=1');
end.

danke Dir.

dann kommt bei mir diese Fehlermeldung:

grafik

Hi, 400er Fehler werden normalerweise durch den Server ausgegeben.
Funktioniert deine Anfrage wenn du Sie einfach über den Webbrowser schickst?

1 Like

Hi, ja, die URL einzeln funktiomiert.

https://api.callmebot.com/whatsapp.php?phone=49xxx&apikey=xxx&text=Mairlist%20Server%20nicht%20mehr%20verbunden

aber wenn ich das script starte, dann kommt der Fehler.

begin
HTTPGet(‘https://api.callmebot.com/whatsapp.php?phone=xxx&apikey=xxx&text=Mairlist%20Server%20nicht%20mehr%20verbunden’);
end.

Probiere mal

begin
  HTTPGet(‘https://api.callmebot.com/whatsapp.php', 'phone=xxx&apikey=xxx&text=Mairlist%20Server%20nicht%20mehr%20verbunden’);
end.

Alternativ auch mal HTTPPost(...) oder gar HTTPPostAsync(...).

1 Like

alles klar

dann kommt ein andere Fehlermeldung:

grafik

Ja, das liegt daran, daß ich Deine Zeile (die nicht als Code formatiert war) kritiklos kopiert hatte. Die tolle Forensoftware macht aus den einfachen Apostrophen „schöne“, nichtsdestoweniger falsche. Ersetze mal die durch '.

kommt leider immernoch der Syntax Error

so, ich habe festgestellt, dass egal was ich ändere, der Syntax Fehler kommt immer wieder

jetzt erstelle ich mal eine ganz neue mls Datei…

so, es geht jetzt mit dem ursprünglichen Code
irgendwie war was mit dem Apostrophen falsch und Änderungen hat mein Editor nicht richtig übernommen.

Danke erstmal für Eure Hilfe. Falls ich nochmal Probleme damit haben sollte, melde ich mich gerne nochmal.

ok, Dein Tipp war auf jedem Fall super. VIELEN DANK

Es klappt nun auch mit meiner ursprünglichen URL, aber eben mit korrekten Apostrophen und sauberem Abspeichern nach Änderungen.

Jetzt hab ich aber “Blut geleckt”.

Kannst Du mir noch helfen und schreiben, wie ich den Text, denn ich an den CallMeBot sende über das Script beeinflussen kann?

Also zum Beispiel fände ich es prima, wenn ich hier:

begin
HTTPGet('https://api.callmebot.com/whatsapp.php?phone=xxx&apikey=xxx&text=**Playlist+erzeugt+fuer+11+Uhr+Stunde**');
end.

den Text, also das “Playlist+erzeugt+fuer+11+Uhr+Stunde” so beeinflussen könnte, dass sich das Script die Uhrzeit zieht, und dann den Stundenwert nimmt, 1 dazu addiert und dies dann in den Text einsetzt.

Geht sowas?

P.S.: ich lerne noch was Scripts angeht und bin Dir dankbar, wenn Du mir da auf die Sprünge hilfst.

Geht z.B. so:

var
  NaechsteStunde: string;
  
begin
  // FormatDateTime gibt Zeiten als Strings aus; wir brauchen nur die Stunde,
  // also 'hh' (ohne führende Null nur 'h').
  //
  // Zeiten in Delphi sind Fließkommazahlen, deren ganzzahlige Anteile jeweils
  // Tage darstellen, die Nachkommastellen sind Bruchteile davon, also Uhrzeiten. 
  //
  // "Now" ist die aktuelle Uhrzeit. Dreht man hin und wieder an der mAirList-Uhr,
  // dann ersetze man "Now" durch "Instance.FakeNow".
  //
  // Damit es eine Stunde mehr wird, addiere man den entsprechenden Bruchteil
  // eines Tages, für eine Stunde also 1/24 Tag. Aber Achtung: Schreibe 1.0/24.0,
  // sonst wird eine Ganzzahl daraus, und die wäre immer 0 (da per Definition
  // immer 0 ≤ Nachkommaanteil < 1).

  NaechsteStunde := FormatDateTime('hh', Now + 1.0/24.0));

  // Strings lassen sich mit dem Pluszeichen verknüpfen:

  HTTPGet('https://api.callmebot.com/whatsapp.php?
    phone=xxx&apikey=xxx&text=**Playlist+erzeugt+fuer+' + NaechsteStunde 
    + '+Uhr+Stunde**');
end.

1 Like

MEGA!!! und DANKE für die vielen Erläuterungen und Erklärungen im Code.

Ich habe die eine “)”, die zuviel war, weggemacht in der Zeile wo die “NaechsteStunde” berechnet wird. Script klappt einwandfrei.

Jetzt steig ich auch so gaaaaanz langsam ein auf das Thema Script.

Kannst Du mir sagen, wo ich diese Codes wie z.B. das “FormatDateTime” oder das “Now” nachschauen kann? Also was es da “so alles gibt”? Weil Ideen kommen einem da ja dann immer mehr und dann würde ich gerne mal experimentieren.

Zum Beispiel würde ich gerne ein Script bauen, welches einmal am Tag alle Elemente oder ggf. gezielt gahz bestimmte Elemente (hier ist die Frage inwiefern ein Script dann filtern kann) von einem Ordner in einen anderen verschiebt. Geht sowas?

Danke nochmal!

Meinst du explizit die Seite?

https://www.delphibasics.co.uk/RTL.php?Name=FormatDateTime

Quelle: reference:logging_variables [mAirList Wiki]

1 Like

wow, DANKE, ja, das hilft mir eigentlich sogar alles, um einfach im Sripting dazuzulernen.

Ich suche vor allem Code/Variablen/Befehle etc. die speziell in Mairlist Dinge abrufen oder ausführen und womit man dann eben weiterarbeiten kann.

Zum Beispiel würde ich gerne ein Script bauen, welches alle Elemente oder ggf. gezielt ganz bestimmte Elemente (hier ist die Frage inwiefern ein Script dann filtern kann) von einem Ordner in einen anderen verschiebt. Geht sowas?

Diese Seite benutze ich auch. Aber Obacht: Lange nicht alle Delphi-Schlüsselwörter funktionieren auch in mAirList-Script! Du wirst es herausfinden. Ansonsten suche hier im Forum nach „Scripting-Hilfe“, da ist das eine oder andere Beispiel zu finden (allerdings etwas älter, manches würde ich heute anders lösen – funktioniert aber).

Ordner? Verschieben? Falls Du meinst, innerhalb der Datenbank, keine Ahnung. Auf Betriebssystem-Ebene würde ich ShellExecute dafür verwenden.

1 Like

ok, alles klar! Dann werde ich mich mal weiter damit beschäftigen.

Ich würde das mit dem Verschieben gerne innerhalb von Mairlist machen.
Es geht mir nur um die Datenbankansicht in Mairlist.

Fall: es gibt einen Aussenreporter. Er produziert 3 kurze Audioberichte pro Woche und sendet die selbst Sonnatgs ans System, also an den Autoimporter. Die drei Datein werden korrekt automatisch im System abgelegt. Sie sollen 1 Woche lang in die Playlisten eingebaut werden.

Es wäre nun super, dass ein Script einen Tag bevor er liefert, also Samstags, die drei oder halt einfach alle Elemente in dem Ordner woanders hin verschiebt, damit sie nicht mehr aus dem Ordner in die Playlisten eingebaut werden können.

Das würde ich zum Beispiel gerne per Script machen.

Alternativ ein Script, welches in jedem in diesem Ordner angelieferten Element in der Sendeplanung bei “nicht mehr spielen nach dem” ein Datum automatisch einträgt, aber da dachte ich, das wird zu kompliziert. Mir würde es ja reichen, wenn die Elemente schnell verschoben werden.