Bottom Line: Here’s how to get all your WhatsApp ABIDs for use in Launch Center Pro URL schemes.
I’m actually not a big WhatsApp user, but I recently discovered I could use it to send “silent” text messages to my girlfriend when she might (or might not) be sleeping. (Basically, a text that gives a “can’t miss it visually” pop-up banner, but doesn’t make any sound or vibration. That way, if she’s asleep it won’t wake her but she’ll see it as soon as she gets up and looks at her phone. If she’s already awake, she should see it relatively quickly as well.) While
Do Not Disturb fulfills this function nicely, we both have very irregular schedules don’t always remember to manually trigger it.
Because I don’t use WhatsApp that frequently, and I’ll really only be using it for one recipient for now, I was hoping for a way to integrate with Launch Center Pro (also now with iPad version) so I could leave WhatsApp in my archive folder and still have a quick way to fire off a silent text. Sure enough, WhatsApp has a reasonable URL scheme, but unfortunately it requires an
ABID parameter to specify a recipient — and there doesn’t seem to be any way to get this
ABID from the app itself.
Federico Viticci has already done a great job covering this problem, including one solution to get the
ABIDs for certain contacts. Unfortunately, I think the iCloud method he describes only works for people you’ve already contacted / with whom you have a chat thread started. Not useful for me, since I don’t really have any going in the first place.
Here’s my proposed solution, which only requires free software and doesn’t require a jailbreak (OSX).
- Download iFunBox, which allows you to browse a decent amount of your iPhone’s storage and app data without a jailbreak.
- Navigate to
User Applications -> WhatsApp -> Documents -> Contacts.sqlite
- Copy this file to your computer
- Open Terminal.app and
cdto the directory containing
- Run the following code, line by line:
sqlite3 Contacts.sqlite .headers on .mode csv .output whatsapp_addressbook.csv select ZFULLNAME, ZABUSERID from ZWACONTACT order by ZFULLNAME;
Make sure you get the
; on that last line.
This uses your Mac’s built in
sqlite3 to export a .csv file of all your WhatsApp contacts and their respective
ABIDs, sorted by (first) name.
The output file
whatsapp_addressbook.csv should be in the same directory, and should look something like:
ZFULLNAME,ZABUSERID John Doe,592 Jane Doe,29
You can now make a Launch Center Pro action like
whatsapp://send?text=[prompt:Text]&abid=45 that will prompt you for text and put it into a WhatsApp message to a given contact (you’ll still have to hit the
Send button afterward).
Further, you can set the action up to let you choose the recipient from a list of common WhatsApp contacts:
Finally, I recommend taking the
whatsapp_addressbook.csv and putting it in your Dropbox or somewhere that you can access it from your iOS device, in case you’re writing URL schemes on-the-go. Remember, the whole reason the iFunBox and sqlite3 stuff is necessary is that I don’t think you can find the
ABID from your iOS device itself. (If someone can figure out a way with Pythonista… that would be awesome.)