Facebook.FacebookClient.ParseDialogCallbackUrl C# (CSharp) Method

ParseDialogCallbackUrl() private method

private ParseDialogCallbackUrl ( Uri uri ) : object
uri System.Uri
return object
        public virtual object ParseDialogCallbackUrl(Uri uri)
        {
            var parameters = new Dictionary<string, object>();
            ParseUrlQueryString(uri.Query, parameters, true);

            // We are serializing and deserializing here so that
            // the result of this object is consistent with whatever
            // serializer is being used. If we hard coded to JsonObject
            // the result would be inconsistent with the rest of the SDK.
            var json = SerializeJson(parameters);
            return DeserializeJson(json, null);
        }

Usage Example

private async void RequestView_OnNavigationCompleted(WebView sender, WebViewNavigationCompletedEventArgs args)
{
    if (args.Uri.DnsSafeHost == "wp.qmatteoq.com")
    {
        sender.Visibility = Visibility.Collapsed;
        AppContent.Visibility = Visibility.Visible;

        FacebookClient client = new FacebookClient(AccessToken);
        dynamic result = client.ParseDialogCallbackUrl(args.Uri);

        if (result.error_code == null)
        {
            var items = (IDictionary<string, object>) result;

            ObservableCollection<FacebookUser> invitedFriends = new ObservableCollection<FacebookUser>();

            foreach (KeyValuePair<string, object> value in items)
            {
                if (value.Key != "request")
                {
                    string query = string.Format("/{0}", value.Value);
                    dynamic user = await client.GetTaskAsync(query);
                    FacebookUser facebookUser = new FacebookUser();
                    facebookUser.FullName = user.name;
                    invitedFriends.Add(facebookUser);
                }
            }

            Friends.Visibility = Visibility.Visible;
            FriendsHeader.Visibility = Visibility.Visible;
            Friends.ItemsSource = invitedFriends;
        }
        else
        {
            MessageDialog dialog = new MessageDialog("The user has canceled the operation");
            await dialog.ShowAsync();
        }
    }
}