Q:

Completely match HTML5 Canvas font to Snapchat's font

I'm trying to recreate a Snapchat "snap" with HTML5 Canvas.  The part that has me stumped is getting the font to look the same.  The font Snapchat uses seems to be Helvetica, but I can't get my text to look the same as that of a real snap. 
Here's my attempt of matching the font.  I've drawn my text on top of an actual screenshot of a snap so it's easy to compare.  You can edit the JavaScript variables to try to match the text (JSFiddle: http://jsfiddle.net/9RB88/1/). 
HTML:
<img src='http://i.imgur.com/tivQ8xJ.jpg'>
<canvas width='640' height='1136'></canvas>

CSS:
img {display:none}

JavaScript:
//--- EDIT THESE ----------------
// text styles...
var fontFamily = 'Helvetica';
var fontSize = '35px';
var fontWeight = 'normal';
// http://css-tricks.com/almanac/properties/f/font-weight/

var onTop = false;
// set this to "true" to place our text on top of the real text (for more precise comparing)
var differentColours = false;
// draw our text/background different colours, making it easier to compare (use when "onTop" is "true")

// tweak where the text is drawn
var horOffset = 2;
var vertOffset = 0;
//-------------------------------

var can = document.getElementsByTagName('canvas')[0];
var c = can.getContext('2d');
c.fillStyle = 'white';
c.fillRect(0, 0, can.width, can.height);
var img = document.getElementsByTagName('img')[0];
c.drawImage(img, 0, 0);

var top;
if(onTop) top = 531;
else top = 450;

if(differentColours) c.fillStyle = 'orange';
else c.fillStyle = 'black';
c.globalAlpha = 0.6;
c.fillRect(0, top, can.width, 74);
c.globalAlpha = 1;
var text = 'Template example thingy $&@?!  123';
if(differentColours) c.fillStyle = 'red';
else c.fillStyle = 'white';
c.textAlign = 'center';
c.font = fontWeight + ' ' + fontSize + ' ' + fontFamily;
c.fillText(text, can.width/2 + horOffset, top + 50 + vertOffset);

JSFiddle: http://jsfiddle.net/9RB88/1/
It seems like one of the issues is letter spacing, but that's not possible to change in HTML5 Canvas. 
What can I do? 

A:

Snapchat may embed a very specific variant or similar font to Helvetica.  That doesn't mean the user loading the page (incl.  on your own machine) will have that font installed on the system. 
If the user doesn't have the font installed the browser will look for similar fonts, for example, it will use Arial on Windows and if that is not available use another sans-serif font.  On Mac and Linux the same thing.  This mean it will perhaps closely match but will not be the same font.  If they don't use a web font the snap could have been taken on a different OS then you are using resulting in a different font being rendered. 
Or in other words - when you specify "Helvetica" as font family the system will try to find a font in that family but it isn't given that Helvetica is the font you'll get.  The browser will try to find the closest matching font available on the system in use. 
You have to embed the very same font they are using as a web font otherwise there is no guarantee that the font will be the same. 
To find out which font they are using (if any) open the stylesheets they're using. 
My 2 cents..

