Exemple #1
0
        /// <summary>
        /// 取得Line使用者個人資料
        /// </summary>
        /// <param name="lineAccessToken">AccessToken</param>
        /// <returns></returns>
        public async Task <LineUserProfile> GetProfile(LineAccessToken lineAccessToken)
        {
            Client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", lineAccessToken.access_token);
            var req = await Client.GetAsync("/v2/profile");

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

                var nData = JsonSerializer.Deserialize <LineUserProfile>(data);
                return(nData);
            }
            catch (System.Exception e)
            {
                throw e;
            }
        }
Exemple #2
0
        /// <summary>
        /// 取得Line使用者Email
        /// </summary>
        /// <param name="lineAccessToken">AccessToken</param>
        /// <returns></returns>
        public async Task <string> GetEmail(LineAccessToken lineAccessToken)
        {
            try
            {
                await Task.Yield();

                JwtSecurityTokenHandler hand = new JwtSecurityTokenHandler();
                var    tokenS = hand.ReadJwtToken(lineAccessToken.id_token);
                string email  = string.Empty;
                if (tokenS.Claims.ToList().Find(c => c.Type == "email") != null)
                {
                    email = tokenS.Claims.First(c => c.Type == "email").Value;
                }
                return(email);
            }
            catch (Exception e)
            {
                throw e;
            }
        }