1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Externer Aufruf eines AppleScripts

Dieses Thema im Forum "AppleScript" wurde erstellt von celtic, 19.03.08.

  1. celtic

    celtic Gast

    Hallo zusammen.
    Ich bin noch ziemlich neu in der Applewelt und vor allem bei AppleScript. Ich habe derzeit folgendes Script (sms):
    Code:
    set theRecipient to "555123456789"
    set theSMSText to "Testnachricht"
    
    tell application "BluePhoneElite 2"
        send message theSMSText to theRecipient using the first device whose available is true
    end tell
    
    Dieses soll eben mit Hilfe von BluePhoneElite 2 SMS verschicken. Wenn ich dieses Script mit osascript sms aufrufe wird auch brav eine Nachricht verschickt. So wie gewünscht.

    Ich möchte jetzt aber mithilfe eines Webinterfaces Nachrichten verschicken. Dazu erzeugt ein PHP-Script eine Datei wie oben, wo nur Empfänger und Nachrichtentext ausgetauscht wird. Danach ruf ich in diesem Script die Funktion exec("osascript sms") auf um das AppleScript auszuführen.
    Das funktioniert aber leider nicht und das äußert sich an zweierlei Dingen:
    1. Der Browser lädt nach dem Abschicken des Formulares (mit Empfänger und Nachricht) das PHP-Skript nicht fertig.
    2. Im error_log von Apache gibt's folgenden Fehler:
    Code:
    _RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL.
    messages/sms:103:193: execution error: BluePhoneElite 2 got an error: AppleEvent timed out. (-1712)
    
    Ich hab zwar ein wenig recherchiert, aber leider keine brauchbare Aushilfe gefunden, da die meisten Ergebnisse weder Deutsch noch Englisch waren.

    Danke schonmal für eure Hilfe.
     
  2. ins0m

    ins0m Gloster

    Dabei seit:
    05.10.07
    Beiträge:
    61
    1. Ich wäre sehr vorsichtig mit dem Versuch eine Eingabe von einem Webservice
    a) in eine freiliegende Datei zu schreiben und
    b) auchnoch als executable liegen zu lassen und
    c) es auchnoch aufzurufen

    2. Ich weiß es nicht genau, aber ich nehme an applescript braucht einen entsprechenden Windowserver des users mit dem es interagieren kann (der webserver hat diesen server natürlich nicht). "_CGSDefaultConnection() is NULL" hört sich an als habe der entsprechende user (www) keinen windowserver (was auch nicht verwunderlich ist), also auch keine möglichkeit eine Event aufzurufen.

    Das ist zumindest das was ich mir aus dieser nachricht zusammenreimen kann.
     
  3. schnydi

    schnydi James Grieve

    Dabei seit:
    08.01.06
    Beiträge:
    137
    Das tönt ja haarsträubend, was du da machen willst! Das System wird niemals zulassen, dass der "www" User ein exec starten kann. (Genausogut könnte ja ein Trojaner starten.)
    Es ist schon erstaunlich, das osascript per Web funktioniert. Das wusste ich nicht, aber interessant!
     
  4. ins0m

    ins0m Gloster

    Dabei seit:
    05.10.07
    Beiträge:
    61
    Naja, der www User darf durchaus ein Executable ausführen , das verhindert das System sicher nicht, auch auf einem mac (und es wäre auch schlimm wenn er das tuen würde). Es ist wohl vielmehr das Problem dass da schlicht kein Window-Server ist mit der der Prozess reden kann.

    Und wie gesagt : Daten von einer WebApp in ein File schreiben (DBs seien da mal ausgenommen) : Mit das gefährlichste was man tun kann. Nur ein Banner "deface me" kann das toppen.
     

Diese Seite empfehlen