10 ms·
“Apple took away Messages.app UI scripting capabilities in OS X 10.11”
- aktau 10y agoThey didn't remove all OSAScript (AppleScript) functionality apparently. This tiny thing still works: https://gist.github.com/aktau/8958054 https://gist.github.com/aktau/8958054. Perhaps the OP really is talking about the Messages.app UI, but the screenshot on github imply that this is some sort of alternate UI (curses-based). Perhaps I'm misundestanding.
- c17r 10y agoThere is no API for Message; this github repo was scraping/scripting the Message.app GUI to create a Message command line client. OSX has removed the ability to scrape/script Messages.app GUI, so the github repo is dead in the water.
- pvg 10y agoThere is a scripting API and most of it still works. For instance you can do tell application "Messages" to send "This is an SMS" to buddy "+14155555555" of service "SMS"
- amatix 10y agoI use Gammu to forward received SMS messages from a USB 3G modem to iMessage (which then appears on all my devices) -- https://gist.github.com/rcoup/93460ea39b05e957e884 https://gist.github.com/rcoup/93460ea39b05e957e884 Unless it's been disabled with 10.11.5 it's still working :)
- deleted 10y ago[deleted]
- sjwright 10y agoI love open source and open protocols as much as anyone on HN, but honestly, secretly, I love the tied-down nature of iMessage because that keeps it (mostly) free from spam and abuse. If you want something more open, that exists too, which is great. It doesn't make sense to complain that iMessage isn't what you want it to be. Choice means that open and closed solutions exist in the market.
- BeefySwain 10y agoChoice means interoperability, not picking between walled gardens.
- eridius 10y agoChoice can mean both things.
- benliong78 10y agoChoice means companies can choose to be walled gardens, and open source aficionado can choose to implement things with openness in mind.
- api 10y agoHow do you open something without spam and abuse? This is a massive unsolved problem.
- dave2000 10y agoWith signed content. Assuming you have a side channel for a one time joining process (email, SMS, real life etc) where you get a single use token/password etc you swap public keys and sign/encrypt all messages using it.
- api 10y agoToo hard to use. Poor UX. Something like chat has to work instantly or its broken.
- hoorayimhelping 10y ago>Choice means interoperability "This word that doesn't mean this other word means this other word." What?
- sjwright 10y agoChoice means choice, not interoperability. Choice means I get to choose a walled garden or an open protocol.
- comex 10y agoIt should be pretty easy to work around this, either by hacking around (e.g. with a debugger) whatever call was used to disable UI scripting, or by using the interface between Messages.app and the IMCore framework, which is a relatively high-level Objective-C API. On the other hand, for the record, reimplementing an iMessage client from scratch would be difficult due to DRM: while the protocol is generally sane, it includes an authentication layer based on FairPlay, involving heavily obfuscated code. Some information here, though I'm not sure if it's up to date: http://imfreedom.org/wiki/IMessage http://imfreedom.org/wiki/IMessage
- brianwawok 10y agoIf you aren't jailbroke, can't they just set it up so no one but program X can access API Y, at the OS level? Apples house, Apples rules.
- comex 10y agoThe linked project is for OS X, not iOS.
- brianwawok 10y agoOpps
- PhantomGremlin 10y agoby hacking around (e.g. with a debugger) In 10.11 Apple added System Integrity Protection[1][2], so it might not be as simple as it once was to hack preinstalled apps. From wiki: Most preinstalled Apple applications in /Applications are protected as well. The kernel stops all processes without specific privileges from writing to flagged files and folders. It also prevents code injection, runtime attachment (like debugging) and DTrace [1] https://support.apple.com/en-us/HT204899 https://support.apple.com/en-us/HT204899 [2] https://en.wikipedia.org/wiki/System_Integrity_Protection https://en.wikipedia.org/wiki/System_Integrity_Protection
- 10y ago
- beedogs 10y agoNothing new: Apple loves removing functionality from their products.
- NEDM64 10y agoNormal. There were people selling apps that bought iMessage to other platforms, by using VMs in servers running the desktop App and using the scripting functionality.
- andybak 10y agoThis gets to the heart of why Apple probably did it and why it's significant. It was a nasty hack for interoperability but it worked and is probably the only thing that would work. It also indicates how much Apple cares about squashing interoperability for iMessage. Whether you feel this is because it presents a security risk or a business risk is down to the cut of your tin foil hat.
- TazeTSchnitzel 10y agoWell, Apple originally planned to make FaceTime (and thus presumably also iMessage) an open standard. Patent trolling put an end to that.
- mcmatterson 10y agoI always wondered about where that promise went. Do you have a source for your statement?
- NEDM64 10y agoIt's not only squashing interop. with iMessage. It's also a way to squash spam and whatnot from iMessage.
- kethinov 10y agoI also built a Messages.app companion app that 10.11 largely broke: https://github.com/kethinov/BubblePainter https://github.com/kethinov/BubblePainter Still technically works if you disable SIP, but that's a big ask just to be able to use my little toy app.
- camhenlin 10y agoFunny to see someone besides me post a link to one of my git repos :) What I've done to get around of some of these issues is run an OS X 10.10 VMware image to handle running iMessage-related code. This gets less UI interference since it is fairly AppleScript heavy. Another poster pointed out that disabling some of OS X's security features seems to make this work as well, but I didn't really feel comfortable recommending that anywhere. I just want to easily and programmatically send and receive iMessages!
- pvg 10y agoIt's not clear from the note on the git repo, what got removed and what functionality got disabled?
- camhenlin 10y agoUI Scripting capabilities were quietly blocked from being used with Messages.app in OS X 10.11
- nier 10y agoI don't understand. In Yosemite you don't need any UI Scripting. Have they removed this from El Capitan as well? What happened to: tell application "Messages" set iMessageService to (first service whose service type is iMessage) send "Hello World" to buddy "0123456789" of iMessageService end tell
- ComputerGuru 10y agoI just bought a jailbroken iPhone which I'll upgrade to a newer release supporting SMS handoff, etc; then use for running a message server so that I can send and receive synchronized messages on my Windows development PC the same way I can on my Mac.
- draw_down 10y agoThat app is such a hunk of junk, on every platform. It's disgraceful.
- fredoliveira 10y agoI'll bite. What's wrong with it on iOS?
- sgt 10y agoI've got a Mac at home which I use for my own personal iMessage bot to do certain tasks in my house. I specifically left this Mac at Mountain Lion, since I sort of anticipated problems further down the line with the newer versions of OS X. I can probably safely upgrade to 10.10 but it was finicky enough to set up the AppleScript to work with my scripts.
- HappyTypist 10y agoI don't think this change was to intentionally block this repo. In OS X 10.11, more system apps including Messages.app has been white listed for SIP protection. Everything works if you disable SIP protection. It is understandable that Apple doesn't want malware to easily read people's messages.
- freewizard 10y agoI don't think it actually helps with spam issue, at least not in China. Almost every iMessage user who activated with a Chinese mobile number has been receiving 3~10 spam iMessages everyday about online gambling and etc since ~2012 when iMessage service went live in China. The content for those messages have been pretty much the same with some minor variant on wording. With the scale of the spam, I believe it's likely not sent thru UI scripting, but the iMessage protocol might have been well reverse-engineered and exploited by spammers. So disabling UI scripting won't help anything but cause trouble for developers with legit usage.
- creshal 10y agoAt Chinese wage levels you might just set up a sweat shop and have people send messages by hand. It worked to break captchas, too.
- LoSboccacc 10y agoprecisely: http://i.huffpost.com/gen/2575582/thumbs/o-WET-570.jpg?7 http://i.huffpost.com/gen/2575582/thumbs/o-WET-570.jpg?7
- cm3 10y agoHadn't seen that before. But there's one disadvantage with breaking captchas: have you been challenged recently with Google captchas? They take much, much longer to solve and oftentimes you don't even pass. This is with their image neural net training captcha. It constantly asks you to select more than the visible and inserts new images until it's satisfied. What I'm saying is that any site that uses Google's captcha system before posting a comment or something similar takes up much more of my time than it did before. I'm not sure if this is strictly needed, seeing many sites that manage with simple captchas. My impression is that Google turned their captcha system into a mechanical turk for letting the masses work for them and train their image neural net.
- cm2187 10y ago
- INTPenis 10y agoIt's still possible to script with tools like Sikuli for example. Edit: I mean for the purposes of spam, not for the purposes of making an app like the one OP linked to.
- mkhpalm 10y agoWhy is everybody fighting so hard to use iMessage? I just tell people I can't use it since Apple doesn't provide a solution for everybody. I thought that was the normal response. Why are people losing sleep over this?