Facebook-Login-Xamarin-Forms icon indicating copy to clipboard operation
Facebook-Login-Xamarin-Forms copied to clipboard

We are not getting email address in facebook response.

Open VikasPawar2112 opened this issue 6 years ago • 1 comments

I am sending following as a post request. ` public async void WebViewOnNavigated(object sender, WebNavigatedEventArgs e) {

        var accessToken = ExtractAccessTokenFromUrl(e.Url);
        Console.WriteLine("Token ==>"+accessToken);
      
        
        if (accessToken != "")
        {
            try
            {
                await GetFacebookProfileAsync(accessToken);
                Console.WriteLine("Facebook ID ==>" + facebookProfile.id);
                if (string.IsNullOrEmpty(facebookProfile.email))
                {
                    Application.Current.MainPage = new NavigationPage(new Register());
                }
                else
                {
                    await FacebookLoginSubmit();  
                }
            }
            catch (Exception)
            {

            }
        }
    }

    async Task<FacebookProfileResponse> GetFacebookProfileAsync(string accessToken)
    {
        var requestUrl =
            "https://graph.facebook.com/v2.7/me/"
            + "?fields=first_name,last_name,email"
            + "&access_token=" + accessToken;

        var httpClient = new HttpClient();

        var userJson = await httpClient.GetStringAsync(requestUrl);

        facebookProfile = JsonConvert.DeserializeObject<FacebookProfileResponse>(userJson);

        return facebookProfile;
    }

    private string ExtractAccessTokenFromUrl(string url)
    {
        if (url.Contains("access_token") && url.Contains("&expires_in="))
        {
            var at = url.Replace("https://www.facebook.com/connect/login_success.html#access_token=", "");

            if (Device.OS == TargetPlatform.WinPhone || Device.OS == TargetPlatform.Windows)
            {
                at = url.Replace("http://www.facebook.com/connect/login_success.html#access_token=", "");
            }

            var accessToken = at.Remove(at.IndexOf("&expires_in="));

            return accessToken;
        }

        return string.Empty;
    }`

VikasPawar2112 avatar Aug 31 '18 12:08 VikasPawar2112

Anyone please help me!

VikasPawar2112 avatar Sep 20 '18 16:09 VikasPawar2112