top | item 22706512

Show HN: Balto, an API to Send iMessages

6 points| rolstenhouse | 6 years ago |balto.withterra.com | reply

5 comments

order
[+] dsukhin|6 years ago|reply
Great work here. Are you using the legacy AppleScript interface [0] provided to Messages? I built an iMessage bot a long time ago that would respond automatically to messages you sent it and save notes for me using that and found it to be pretty reliable and easy to script but with a number of quirks and gotchas. I even bridged it out to Python to make it easier to work with.

The only limitation of course was that a Mac had to be always on, logged into the relevant account, connected to the internet, and running AppleScript to run it so there was no dream to scale it reliably/economically (as you are) much less even use it privately since the Mac was also a primary laptop. How are you getting past one device, one account scalability problem? Mac in cloud on the roadmap?

How do you consider you will scale this and at what cost? Have you checked into Apple's viewpoint and policies on this given they offer a business API [1] for a similar solution?

[0] https://stackoverflow.com/questions/11812184/how-to-send-an-...

[1] https://www.apple.com/ios/business-chat/

[+] rolstenhouse|6 years ago|reply
Hey HN, proud to share balto, an API to send iMessages from a new phone number. I originally built this out to take advantage of the iMessage features (specifically read receipts and videos) after sadly learning that these features are severely limited when using Twilio or other SMS providers.

From there I went down a crazy rabbit hole, talking to apple support, shopping on eBay for an old iPhone, digging through poorly documented JXA (javascript to control your mac), and eventually landing on a MVP which today supports sending new iMessages from a custom phone number and looking at read receipts (if the other party has them turned on); with many more features on the way (think full videos, audio recording, tapbacks, group chats, etc.)

Love this community and the valuable feedback y’all provide!

[+] probe|6 years ago|reply
This is super cool! There's definitely an advantage to being a native iMessage vs just sending out texts.

Also if I'm understanding correctly, I can also use the API to understand if a message was read or not?

[+] nickphx|6 years ago|reply
That's pretty neat. So you are controlling imessage software on a physical device? You haven't had control synchronization problems or stability issues?
[+] rolstenhouse|6 years ago|reply
Yes. There's a mac mini running which directly interfaces with the Messages app and underlying data storage. There's been a few synchronization problems, but for the most part the Messages platform is fairly robust. Unfortunately, there's a couple sleep statements that I had to write in for the short term, but there's a path to removing them in the long term.