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?

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

Definitivamente funciona. Obrigado por explicar que :)
Seth
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.