So it turns out there is a THIRD api: MASF
I have SMS out working on this “new” protocol. It’s actually the old mobile protocol based on MASF (Mobile Application Sensing Framework). It doesn’t use JSON. It uses Google’s custom ProtoBuf design. I was looking into this because I’ve run into a problem with notifications. Using the Mobile API, it seems like it’s not working at all right now. Seriously, even on the official Google Voice app my notifications have stopped working. I might have bugged my account. It should expire in a couple of hours.
For reference, the notification API works like this:
Create Register Destination that includes your account name, android ID and requested callback intent. It’s sent via C2DM.
Check in ever so often (I think official Google app does it every 60 minutes).
Create ‘Unregister Destination’ and send it when you no longer want notifications
There exists a problem that the original MASF used the correct abbreviations: Checkin = ‘in’; Register Destination = ‘rd’; Unregister Destination = ‘ud’. But apparently Google messed up when ported the MASF code and swapped ‘rd’ with ‘ud’. Now I don’t know what to trust.
For the curious, the MASF url is: https://www.google.com/m/appreq/gv
You have to POST data in ProtoBuf format. Also, the auth token required isn’t the same as “Google Voice” and uses the “grandcentral” token.
Reverse engineering is hard work.