There is a log statement in there that should output something anyways like this: Log("setting fmtoken to: " & fm.Token). I had previously thought that initially, fm_TokenRefresh will always be invoked to provide the token but that is not the case and I have never seen it invoked.
Also, fm.Token returns a token sometimes and sometimes it doesn't. I suspect that is because this is an async operation but then the token refreshed event should get called to provide me with the actual token.