private void OnAuthoirzeDialogClick(object sender, RoutedEventArgs e) { AccessTokenTextBlock.Text = string.Empty; string scope = "public_profile,email"; string fbAppId = "{facebook app id}"; string appId = WebAuthenticationBroker.GetCurrentApplicationCallbackUri().OriginalString; string request = $"https://www.facebook.com/v2.6/dialog/oauth?client_id={fbAppId}&redirect_uri={appId}&response_type=token&scope={scope}&display=popup"; OAuthDialog oauthdialog = new OAuthDialog(); oauthdialog.AuthorizeRedirectChanged += (o, a) => { int idx = a.IndexOf("access_token"); if (idx > 0) { string[] data = a.Split(new string[] { "#" }, StringSplitOptions.RemoveEmptyEntries); Dictionary <string, string> returnData = data[1].Split(new[] { '&' }, StringSplitOptions.RemoveEmptyEntries) .Select(part => part.Split('=')) .ToDictionary(split => split[0], split => split[1]); AccessTokenTextBlock.Text = returnData["access_token"]; } else { AccessTokenTextBlock.Text = a; } }; oauthdialog.AuthorizeUrl = request; oauthdialog.Show(); }
public override void Execute(object parameter) { var dlg = new OAuthDialog(); bool? result = dlg.ShowDialog(); if (result.HasValue == result.Value) Client.CheckAuthorization(); }