2012-09-11 5 views
8

Hey, ich bin mit dem folgenden Skript:Des Versuch, eine Nachricht von os x Nachricht erhalten w/Apple

using terms from application "Messages" 
    on message received this_message from this_buddy for this_chat 
     display dialog "test" 
    end message received 
end using terms from 

aber ich bekomme die folgenden Fehler jedes Mal in Nachrichten, wenn ich eine Nachricht erhalten:

Event: Message Received in Active Chat 
File: registerToReceiveMessages.applescript 
Error: Error -1708 

Ich kann diesen Fehler nirgends im Internet finden. Es scheint für jeden Chat außer dem aktiven Chat zu funktionieren. Irgendwelche Ideen?

Auch ich versuche, die Ereignisse hinzufügen „adressierte Nachricht empfangen“, aber jedes Mal kompilieren ich Apple ersetzt, die auf „Remote-Screen-Sharing-Einladung erhalten“

+0

Haben Sie das jemals herausgefunden? –

+1

Haha, das gleiche Problem hier. AppleScript, eine Sprache mit solchen modernen Konzepten, aber mit Fehlermeldungen, die an die 80er Jahre erinnern! – Feuermurmel

+0

Der Fehler sagt "Unhandled Event" [Ref] (http://developer.apple.com/legacy/library/#documentation/Carbon/Reference/Apple_Event_Manager/Reference/reference.html), aber ich kann das Ereignis nicht finden für Nachricht, die in aktivem Chat empfangen wird – drinchev

Antwort

0

ich mir sieht aus wie die message received Event-Handler funktioniert nur, wenn es fühlt sich an wie in Nachrichten. Ich hatte das gleiche Problem mit einem etwas anderen Skript. Nachdem Sie ein anderes Beispiel auf einer anderen Website gefunden, es in ein neues AppleScript-Editorfenster kopiert und über die AppleScript-Datei gespeichert haben, die von Nachrichten in ~/Library/Scripts/Messages kopiert wurde, hat es begonnen zu arbeiten.

Es scheint kein Problem mit Ihrem Skript zu sein. Wenn ich mein aktuelles Skript durch Ihren Code ersetze und das Skript speichere, funktioniert es wie erwartet und zeigt einen Dialog an, der den Text test enthält.

Es kann auch ausreichen, das Skript nur auf None und zurück zu dem Skript einzustellen, das Sie in den Nachrichteneinstellungen erstellt haben.

7

Sie erhalten einen Error -1708, wenn Sie ein AppleScript ausgewählt haben, das das angegebene Ereignis nicht verarbeitet.

Wenn Ihr Skript beispielsweise nur on message sent implementiert hat, Sie dieses Skript jedoch so einstellen, dass es jedes Mal ausgeführt wird, wenn Sie eine Nachricht erhalten, erhalten Sie den Fehler -1708. Dies liegt daran, dass Ihr Skript nur mit abgehenden, nicht eingehenden Nachrichten umgehen kann, daher Fehler -1708.

hier ist nun etwas Interessantes ...

Wenn Sie den Standard-Skript Mix Message Case.applescript für die Ereignisse Message Received, Message Received in Active Chat und Message Sent zu nutzen versuchen. Der erste und der letzte funktionieren einwandfrei, aber Sie erhalten einen Fehler von -1708 für das aktive Chat-Ereignis. Daraus können wir ableiten, dass das Skript das Ereignis Message Received in Active Chat nicht verarbeitet. Und so scheint es, dass nicht einmal Apple dieses Ereignis jetzt verarbeiten kann.

OS X Mavericks Update:

Dieses Update behebt die zuvor erwähnten Fehler. Wenn Sie Apples Beispielskript Speak Events.applescript auswählen, werden Sie feststellen, dass es Nachrichten verarbeitet, die fehlerfrei im aktiven Chat-Raum eingehen. Wenn Sie den Code untersuchen, werden Sie feststellen, dass er die Methode on active chat message received verwendet. Das können wir jetzt in unseren Skripten verwenden. Da ich die alte Version nicht mehr installiert habe, kann ich nicht testen, ob diese Methode in der vorherigen Version funktioniert.

Hier ist der Code von Speak Events.applescript:

Beachten Sie auch, wie Sie einzelne Skripts nicht mehr angeben, die für bestimmte Ereignisse ausgeführt werden sollen. Stattdessen geben Sie einen einzelnen Skripthandler für Nachrichtenereignisse an. Das bedeutet, dass Sie alle Ereignisse implementieren müssen, damit keine -1708-Methoden verwendet werden. Beachten Sie, dass Apple in den Beispielskripten sogar den Kommentar # The following are unused but need to be defined to avoid an error hat. Hier ist eine Vorlage, die als Ausgangspunkt für Skripte verwendet werden können:

using terms from application "Messages" 
    # The following are unused but need to be defined to avoid an error 

    on message sent theMessage with eventDescription 
    end message sent 

    on message received theMessage with eventDescription 
    end message received 

    on chat room message received with eventDescription 
    end chat room message received 

    on active chat message received with eventDescription 
    end active chat message received 

    on addressed message received theMessage from theBuddy for theChat with eventDescription 
    end addressed message received 

    on received text invitation with eventDescription 
    end received text invitation 

    on received audio invitation theText from theBuddy for theChat with eventDescription 
    end received audio invitation 

    on received video invitation theText from theBuddy for theChat with eventDescription 
    end received video invitation 

    on received local screen sharing invitation from theBuddy for theChat with eventDescription 
    end received local screen sharing invitation 

    on buddy authorization requested with eventDescription 
    end buddy authorization requested 

    on addressed chat room message received with eventDescription 
    end addressed chat room message received 

    on received remote screen sharing invitation with eventDescription 
    end received remote screen sharing invitation 

    on login finished with eventDescription 
    end login finished 

    on logout finished with eventDescription 
    end logout finished 

    on buddy became available with eventDescription 
    end buddy became available 

    on buddy became unavailable with eventDescription 
    end buddy became unavailable 

    on received file transfer invitation theFileTransfer with eventDescription 
    end received file transfer invitation 

    on av chat started with eventDescription 
    end av chat started 

    on av chat ended with eventDescription 
    end av chat ended 

    on completed file transfer with eventDescription 
    end completed file transfer 

end using terms from 

Wenn Sie mit diesem Skript beginnen und implementieren nur die Methoden, die Sie benötigen (während der Rest intakt bleibt), dann sollten Sie alle -1708 vermeiden Fehler.

Verwandte Themen