/// <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; } }
/// <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; } }