fb.Get () не существует? - PullRequest
       6

fb.Get () не существует?

2 голосов
/ 18 декабря 2011

У меня есть код ниже, который я получил с Блог Прабира (документация по codeplex) , а метод fb.get () не существует ... Я смог протестировать весь путь доаутентификация, когда он переходит на страницу входа в fb, и теперь я пытаюсь сделать fb.Get ("/ me");Я новичок в этом и просто следую инструкциям ...

private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{
    string appId = "xxx";
    string[] extendedPermissions = new[] { "publish_stream", "offline_access" };

    var oauth = new FacebookOAuthClient { AppId = appId};

    var parameters = new Dictionary<string, object>
    {
        { "response_type", "token" },
        { "display", "popup" }
    };

    if (extendedPermissions != null && extendedPermissions.Length > 0)
    {
        var scope = new StringBuilder();
        scope.Append(string.Join(",", extendedPermissions));
        parameters["scope"] = scope.ToString();
    }

    var loginUrl = oauth.GetLoginUrl(parameters);

    webBrowser.Navigating += webBrowser_Navigated;
    webBrowser.Navigate(loginUrl);
}

private void webBrowser_Navigated(object sender, NavigatingEventArgs e)
{
    FacebookOAuthResult result=null;

    if (FacebookOAuthResult.TryParse(e.Uri, out result))
    {
        if (result.IsSuccess)
        {
            var accesstoken = result.AccessToken;
            var fb = new FacebookClient(accesstoken);

            var results = (IDictionary<string, object>)fb.Get("/me");
            var name = (string)results["name"];

            MessageBox.Show("Hi " + name);
        }
        else
        {
            var errorDescription = result.ErrorDescription;
            var errorReason = result.ErrorReason;
        }
    }
}

1 Ответ

3 голосов
/ 18 декабря 2011

используйте вместо этого fb.GetAsync. Window Phone 7 не поддерживает синхронные методы.

Я настоятельно рекомендую вам загрузить исходный код и ознакомиться с примером "Samples \ CS-WP7.sln".

var fb = new FacebookClient(_accessToken);

fb.GetCompleted += (o, args) =>
                       {
                           if (args.Error == null)
                           {
                               var me = (IDictionary<string, object>)args.GetResultData();

                               Dispatcher.BeginInvoke(
                                   () =>
                                   {
                                       FirstName.Text = "First Name: " + me["first_name"];
                                       LastName.Text = "Last Name: " + me["last_name"];
                                   });
                           }
                           else
                           {
                               Dispatcher.BeginInvoke(() => MessageBox.Show(args.Error.Message));
                           }
                       };

fb.GetAsync("me");
...