Từ Văn Bản đến Phương Tiện Truyền Thông: Tự động hóa iMessages với AppleScript

By JoeVu, at: 10:42 Ngày 22 tháng 11 năm 2024

Thời gian đọc ước tính: __READING_TIME__ minutes

From Text to Media: Automating iMessages with AppleScript
From Text to Media: Automating iMessages with AppleScript

Từ Văn Bản Đến Phương Tiện Truyền Thông: Tự Động Hóa iMessages với AppleScript

Sau khi tự động hóa thành công tin nhắn văn bản bằng AppleScript, tôi quyết định đẩy mạnh giới hạn và khám phá việc gửi nội dung đa phương tiện — hình ảnh, tệp âm thanh, và thậm chí cả tin nhắn văn bản ngẫu nhiên. Hành trình mới này đã hé lộ cả những khả năng thú vị và những thách thức bất ngờ.

 

Bước 1: Lập Trình Script

Để gửi hình ảnh hoặc tệp âm thanh, AppleScript cần tương tác với cả ứng dụng Messages và hệ thống tệp macOS. Dưới đây là phiên bản đơn giản hóa của script tôi đã sử dụng ban đầu:

tell application "Messages"
    set targetBuddy to "[email protected]"
    set targetService to id of 1st service whose service type = iMessage
    set theMessage to "Check this out!"
    set theFile to POSIX file "/path/to/your/file.jpg"
    
    send theFile to buddy targetBuddy of service id targetService
end tell


Đối với việc gửi tin nhắn văn bản ngẫu nhiên, tôi đã tạo một danh sách các tin nhắn được viết sẵn và sử dụng một bộ tạo số ngẫu nhiên đơn giản:

set randomMessages to {"Hello!", "How's it going?", "This is automated but still thoughtful!", "Random message time!"}
set theMessage to some item of randomMessage

 

Bước 2: Thành Công Ban Đầu

Khi tôi lần đầu tiên thử nghiệm script, các tệp được gửi hoàn hảo, và tôi thấy các tin nhắn đa phương tiện xuất hiện trong iMessage. Mọi thứ dường như hoạt động như mong đợi.

 

Bước 3: Bí Ẩn của Tin Nhắn Thất Bại

Tuy nhiên, sau khi chạy script vài lần nữa, tôi nhận thấy điều gì đó kỳ lạ. Trong khi tin nhắn văn bản được gửi liên tục, các tệp hình ảnh và âm thanh bắt đầu bị lỗi sau vài phút. Các tệp đơn giản là không được gửi, và không có lỗi nào được script báo cáo.

 

Bước 4: Khắc Phục Sự Cố

Sau một vài lần cố gắng gỡ lỗi, tôi phát hiện ra rằng việc thay đổi thư mục tệp đã giải quyết được vấn đề. Ban đầu, tôi đang lấy tệp từ thư mục Music, nhưng chuyển sang Pictures hoặc Downloads đã khiến script hoạt động hoàn hảo trở lại. Điều này khiến tôi nghi ngờ rằng vấn đề liên quan đến quyền macOS, vì một số ứng dụng như Messages có thể hạn chế quyền truy cập vào các thư mục cụ thể.

 

Script Đã Cập Nhật

Đây là script đã được sửa đổi với thư mục tệp đã được chỉnh sửa:

tell application "Messages"
    set targetBuddy to "[email protected]"
    set targetService to id of 1st service whose service type = iMessage
    set theFile to POSIX file "/Users/joe/Downloads/test_image.jpg" -- Thư mục đã cập nhật
    send theFile to buddy targetBuddy of service id targetService
end tell

 

Thông Tin Về Quyền

Trải nghiệm này làm nổi bật một khía cạnh quan trọng của bảo mật macOS:

  • Hộp cát và Quyền: Một số thư mục, như Music, có thể có thêm các hạn chế khi được truy cập bởi các ứng dụng hoặc script của bên thứ ba.
     
  • Cách giải quyết: Sử dụng các thư mục cho phép hơn như Pictures hoặc Downloads thường có thể giải quyết các vấn đề như vậy.
     

Các Bước Tiếp Theo

Quá trình tự động hóa tin nhắn đa phương tiện bằng AppleScript đã dạy cho tôi tầm quan trọng của việc hiểu quyền tệp và thích ứng với các ràng buộc hệ thống. Tiếp theo, tôi dự định:

  • Khám phá việc chọn tệp động để có script tương tác hơn.
     
  • Thử nghiệm kết hợp tin nhắn văn bản và đa phương tiện.
     
  • Kiểm tra tích hợp với Automator để lập lịch trình các script này.
     

Kết Luận

Gửi nội dung đa phương tiện bằng AppleScript là một thử thách bổ ích. Mặc dù vấn đề quyền đã làm tăng thêm độ phức tạp, nhưng việc khắc phục nó đã giúp tôi hiểu sâu hơn về hoạt động bên trong của macOS. Nếu bạn đang bắt đầu tự động hóa bằng AppleScript, hãy nhớ: sự kiên trì là chìa khóa, và đôi khi giải pháp đơn giản như việc chọn đúng thư mục.

 

Nội dung đầy đủ của applescript ở đây

-- Định nghĩa địa chỉ email người nhận
set recipientEmail to "[email protected]"

-- Chỉ định đường dẫn đầy đủ đến tệp âm thanh
-- set audioFilePath to "/Users/joe/Pictures/2345.png"
set audioFilePath to "/Users/joe/Pictures/1.m4a"
--set audioFilePath to "/Users/joe/Pictures/1.mp3"

-- Danh sách các tin nhắn được định nghĩa sẵn
set messageList to {"Hello from the Glinteco", "This is fun script", "Play around with Glinteco"}

-- Chọn một tin nhắn ngẫu nhiên
set randomIndex to random number from 1 to (count messageList)
set randomMessage to item randomIndex of messageList

-- Đảm bảo tệp âm thanh tồn tại bằng Finder
set audioFile to POSIX file audioFilePath
tell application "Finder"
    if not (exists audioFile) then
        display dialog "Tệp âm thanh đã chỉ định không tồn tại." buttons {"OK"} default button "OK"
        return
    end if
end tell

-- Gửi iMessage với tin nhắn ngẫu nhiên và tệp âm thanh
tell application "Messages"
    set targetService to 1st account whose service type = iMessage
    set targetBuddy to participant recipientEmail of targetService
    
    -- Gửi tin nhắn ngẫu nhiên trước
    send randomMessage to targetBuddy
    
    -- Tạm dừng để đảm bảo tin nhắn được gửi trước khi gửi tệp
    delay 1
    
    -- Gửi tệp âm thanh
    send file audioFile to targetBuddy
end tell

 

Tag list:
- AppleScript troubleshooting tips
- AppleScript random text messages
- Sending images via iMessage
- AppleScript file directory permissions
- AppleScript automation
- AppleScript iMessage permissions
- Automate iMessage media files
- macOS automation tools
- Send iMessage with AppleScript
- AppleScript multimedia messaging

Theo dõi

Theo dõi bản tin của chúng tôi và không bao giờ bỏ lỡ những tin tức mới nhất.