예제 #1
0
    private void AuthCallback(ILoginResult result)
    {
        if (FB.IsLoggedIn)
        {
            // AccessToken class will have session details
            var aToken = AccessToken.CurrentAccessToken;

            FBAccessToken fbAccessToken = new FBAccessToken();
            fbAccessToken.TokenString = aToken.TokenString;
            fbAccessToken.UserType    = "Instructor";

            StartCoroutine(
                HTTPClient.Post("/updateUser", JsonUtility.ToJson(fbAccessToken), statusCode => {
                if (statusCode == "200")
                {
                    SceneManager.LoadScene("SetupMeditationRoom");
                }
                else
                {
                    HFTDialog.MessageBox("Authentication error", "Facebook authentication failed.", () => {
                        Debug.Log("statusCode");
                        Debug.Log(statusCode);
                    });
                }
            })
                );
        }
        else
        {
            Debug.Log("Error");
            Debug.Log(result);
            Debug.Log(result.Error);
            Debug.Log("User cancelled login");
        }
    }
예제 #2
0
    void AuthenticateSocket(SocketIOEvent e)
    {
        Debug.Log("[SocketIO] Authenticate received: " + e.name + " " + e.data);
        FBAccessToken fbAccessToken = new FBAccessToken();

        fbAccessToken.TokenString = Facebook.Unity.AccessToken.CurrentAccessToken.TokenString;
        fbAccessToken.UserType    = "Instructor";
        socket.Emit("authenticate", new JSONObject(JsonUtility.ToJson(fbAccessToken)));
    }
예제 #3
0
        private FBAccessToken GetFBAccessToken(SocialConfig socialConfig)
        {
            FBAccessToken model = null;

            try
            {
                var url = $"{FBUrlApi}/oauth/access_token?client_id={socialConfig.AppId}&client_secret={socialConfig.AppSecret}&grant_type=fb_exchange_token";
                model = HttpExtension.Instance.InvokeGet <FBAccessToken>(url).Result;
            }
            catch (Exception ex)
            {
                CoreLogger.Instance.Error(this.CreateMessageLog(ex.Message));
            }
            return(model);
        }
예제 #4
0
        /// <summary>
        /// 取得FB使用者的Profile
        /// </summary>
        /// <param name="fBAccessToken"></param>
        /// <returns></returns>
        public async Task <FBUserProfile> GetProfile(FBAccessToken fBAccessToken)
        {
            var url = $"/me?access_token={fBAccessToken.access_token}";
            var req = await Client.GetAsync(url);

            try
            {
                var bb   = req.IsSuccessStatusCode;
                var data = await req.Content.ReadAsStringAsync();

                var resData = JsonSerializer.Deserialize <FBUserProfile>(data);
                return(resData);
            }
            catch (System.Exception e)
            {
                throw e;
            }
        }