Erro ao enviar arquivo POSIX como anexo com o iMessage

2

Então, eu tenho esse AppleScript que tenta pegar todas as imagens de uma pasta e as envia para um amigo através do iMessage.

A pasta tem a seguinte estrutura:

Desktop
  my-folder
    image-1
    image-2
    image-2

O problema é que, quando leio todos os arquivos para uma variável como uma string e, em seguida, tento configurá-los para um POSIX file, recebo o erro:

As mensagens receberam um erro: Não é possível obter o arquivo POSIX "/ Users / user / Desktop / my-folder / image-name".

do shell script "rm -f ~/Desktop/my-folder/.DS_Store"

tell application "System Events"
    set imgs to POSIX path of disk items of folder "~/Desktop/my-folder"
end tell

tell application "Messages"
    set targetServiceId to id of 1st service whose service type = iMessage
    set theBuddy to buddy "redacted phone#" of service id targetServiceId

    repeat with img in imgs
        set imageAttachment to POSIX file img # errors
        send imageAttachment to theBuddy
    end repeat
end tell

Como posso definir imageAttachmentcorretamente como a POSIX filepara poder enviá-lo com o iMessage?

Seth
fonte

Respostas:

4

Você está executando sandboxing AppleScript. O aplicativo Mensagens não tem acesso para abrir esse arquivo. O truque é transformar os caminhos para os arquivos POSIX fora dos blocos tell. Isso permitirá que o mecanismo de direitos passe o direito para o bloco tell, para que o aplicativo possa abri-lo.

Este código funciona:

tell application "System Events"
    set paths to POSIX path of disk items of folder "~/Desktop/my-folder"
end tell

set imgs to {}
repeat with f in paths
    set imgs to imgs & (POSIX file f)
end repeat

tell application "Messages"
    set targetServiceId to id of 1st service whose service type = iMessage
    set theBuddy to buddy "redacted" of service id targetServiceId
    repeat with img in imgs
        send img to theBuddy
    end repeat
end tell
Alan Shutko
fonte
Definitivamente funciona. Obrigado por explicar que :)
Seth