Getting vCard info into a QR code using the Google Chart API
Posted: October 19, 2011 Filed under: code/files, education, libraries, web services 1 CommentHow to get vCard info into a QR code using the Google Chart API? This question has been coming up occasionally and it can be a little quirky. I thought I might document my process of making this work with the Google Chart API.
1. Create the unencoded vCard info. Sample Below:
BEGIN:VCARD VERSION:3.0 N:Clark;Jason FN:Jason Clark ORG:MSU Library TITLE:Team Leader/Digital Initiatives Librarian [Associate Professor] TEL;TYPE=WORK,VOICE:(406) 994-6801 EMAIL;TYPE=PREF,INTERNET:jaclark@montana.edu URL:http://www.jasonclark.info REV:20111013T195243Z END:VCARD
2. Run the unencoded vCard info through a utility or programming function. In this example, we are using the online “URI Encoder / Decoder” tool http://andrewu.co.uk/tools/uriencoder/. Some common functions in programming languages that would do the same thing are: Server.URLEncode() in ASP, urlencode() in PHP, and encodeURI() in Javascript. After pushing the unencoded vCard string through the “URI Encoder / Decoder” tool, we get a resulting string like this:
BEGIN%3AVCARD%0D%0A%09%09 VERSION%3A3.0%0D%0A%09%09N%3AClark%3BJason%0D%0A%09%09 FN%3AJason+Clark%0D%0A%09%09ORG%3AMSU+Library%0D%0A%09%09 TITurLE%3ATeam+Leader%2FDigital+Initiatives+Librarian+%5BAssociate+Professor%5D%0D%0A%09%09 TEL%3BTYPE%3DWORK%2CVOICE%3A%28406%29+994-6801%0D%0A%09%09EMAIL%3BTYPE%3DPREF%2CINTERNET%3Ajaclark%40montana.edu%0D%0A%09%09 URL%3Ahttp%3A%2F%2Fwww.jasonclark.info%0D%0A%09%09 REV%3A20111013T195243Z%0D%0A%09%09 END%3AVCARD
A potential gotcha here is the URL value in the vCard. Make sure the URL value in the vCard is encoded and has changed from
URL:http://www.jasonclark.info
to something that looks like:
URL%3Ahttp%3A%2F%2Fwww.jasonclark.info%0D%0A%09%09
3. Next, we place the encoded string in the Google Chart API to generate the QR code. Put your encoded vCard string in the URL below after the “&chl=”. For more info, see the online wizard tool and documentation for the Google Chart API. Check the link below to see the generated QR code.
http://chart.apis.google.com/chart?chs=200x200&cht=qr&chld=|0&chl=BEGIN%3AVCARD%0D%0A%09%09VERSION%3A3.0%0D%0A%09%09N%3AClark%3BJason%0D%0A%09%09FN%3AJason+Clark%0D%0A%09%09ORG%3AMSU+Library%0D%0A%09%09TITLE%3ATeam+Leader%2FDigital+Initiatives+Librarian+%5BAssociate+Professor%5D%0D%0A%09%09TEL%3BTYPE%3DWORK%2CVOICE%3A%28406%29+994-6801%0D%0A%09%09EMAIL%3BTYPE%3DPREF%2CINTERNET%3Ajaclark%40montana.edu%0D%0A%09%09URL%3Ahttp%3A%2F%2Fwww.jasonclark.info%0D%0A%09%09REV%3A20111013T195243Z%0D%0A%09%09END%3AVCARD
4. If everything works, the Google Chart API returns a link to a QR code image with the vCard info encoded. Place this URL in an HTML <img> tag and you’ll have a QR code on your site that will have vCard data. Note: You will need to add your specific contact vCard data in Step 1.
Good stuff – thanks.
An interesting post about the Google Chart API here.