Google recently made some changes to the way Google Voice responds to some requests, and GrowlVoice stopped working.
Update (2014-05-10): There is now a much easier way to do this now. See http://github.com/szhu/fix-growlvoice for instructions on patching this which does not require Keyboard Maestro.
Background: As I understand it, there has never been an official API for Google Voice, so developers have had to figure things out on their own and build a workable solution without the tools they really need. Google has announced plans to integrate Google Voice into Google Hangouts, and the recent change which broke GrowlVoice was part of that. Could GrowlVoice be patched to fix this? Probably, but how long will it be until Google changes something else? And how long will it take Apple to approve the update for the Mac App Store? With no official API for Google Voice, and Google Voice's entire future uncertain, I don't think I'd want to try keeping the app working either if I was the developer.
However, just as clever developers found a way to make Google Voice work without an official API, someone else has figured out how to make Google Voice's current setup work with GrowlVoice, to extend its life, at least until Google changes something else.
Elliot Kroo (@ellkro) came up with an ingenious solution to patch the information that comes from Google Voice so that GrowlVoice can understand it. His instructions can be found at: https://gist.github.com/kroo/11205755.
A big-time hat-tip and thank you to Terry McCall (@hagure) for telling me about Elliot's instructions!
Unfortunately, even after you download the necessary files, this fix requires that you run a Terminal command every time GrowlVoice launches.
You can probably already guess what I thought when I heard that:
"Wait... you have to do something every time something else happens? Can I automate that?"
Spoiler alert: yes. How? Say it with me: Keyboard Maestro.
Here are the (non-automated) steps involved
Before we can automate it, we have to know what steps to take to make it work manually.
Download the files described in the 'gist'
Wait for an alert panel that looks like this:
OK, now that we know the steps, we can automate them.
How to do this in Keyboard Maestro
Create a new macro which will run the following commands every time GrowlVoice launches:
"Pause Until" there is a button "OK"
Press "OK" button
Run Terminal commands
Now, that last step is a little tricky because one of those commands has to be run with elevated "permissions" which can be done, but requires some extra work. There are two ways to accomplish this: with AppleScript or with
(N.B: Step 3 will also download the necessary files if they are not already installed.)
- This way is a little easier, because you don't have to get into the Terminal.
However, you have to enter your administrator password every time GrowlVoice launches:
- Requires that you add an entry to your
But once the initial configuration is done, everything else can be automated, meaning that you do not have to enter your password each time GrowlVoice launches.
This is the line you need to add to
%admin ALL=NOPASSWD: /Users/luomat/Dropbox/etc/fix-growlvoice/cycript
However, you need to change
/Users/luomat/Dropbox/etc/fix-growlvoice/ to the correct path on your Mac.
If you aren't sure what any of that means, use the AppleScript version.
Download and install one of these into Keyboard Maestro:
Whichever one you use, you will have to edit the line in the shell script section:
change that to be wherever you want the files to be kept. (If you use the
$DIR should be the folder where the
cycript command is found.)
Regardless of which version you choose, the first time you run it, the necessary files (as referenced in the "gist" above) will be downloaded and installed the directory you set as
It's not a fix, it's a patch
If GrowlVoice's developer doesn't update the app, this patch will only work until Google changes something else, and it will have to be run each time the app launches. It might not be the most elegant solution ever, but it's better than not having GrowlVoice at all.