Example #1
0
        public static IEnumerator GetToken(Action <string> callback)
        {
            if (expires > DateTime.Now)
            {
                callback(token);
                yield break;
            }

            string jwt = Jwt.GetJwt(Constants.Email, Constants.Keyfile, Constants.Scope);

            WWWForm form = new WWWForm();

            form.AddField("grant_type", Constants.Grant);
            form.AddField("assertion", jwt);
            UnityWebRequest request = UnityWebRequest.Post(Constants.Url, form);

            yield return(request.SendWebRequest());

            if (request.isNetworkError || request.isHttpError)
            {
                Debug.LogWarning(request.error);
                callback(null);
                yield break;
            }

            byte[]           rawResponse  = request.downloadHandler.data;
            string           jsonResponse = Encoding.UTF8.GetString(rawResponse);
            AuthResponseBody response     = Json.FromJson <AuthResponseBody>(jsonResponse);

            expires = DateTime.Now.AddSeconds(response.expiresIn);
            token   = response.accessToken;

            callback(response.accessToken);
        }