远程过程调用失败

时间:2015-03-28 18:40:16

标签: c# facebook windows-phone-8.1

这是我的第一篇文章,所以请对我很轻松:)

我正在做a tutorial for Facebook SDK,我正在尝试从Windows Phone XAML应用程序登录到facebook服务。 当我按照教程的步骤操作时,它工作正常,并点击登录按钮登录,但当我尝试自动化时,我收到错误。

代码使用WebAuthenticationBroker,调用WebAuthenticationBroker.AuthenticateAndContinue(LoginUrl);

当我尝试将该代码放入Loaded事件

private void Page_Loaded(object sender, RoutedEventArgs e)
{
    if (this.fbHelper.AccessToken == null)
    {
         WebAuthenticationBroker.AuthenticateAndContinue(LoginUrl); //throws error
    }
    else
    {
        GetUserInfo();
    }
}

我收到以下错误:

  

远程过程调用失败。 (HRESULT异常:0x800706BE)

我认为问题是该页面还没有准备好执行逻辑,但我真的不知道我应该把代码放在哪里?

1 个答案:

答案 0 :(得分:0)

一旦 Window 被激活,似乎可以调用 Broker 。正如我已经尝试过的那样,它应该在这样做时起作用:

public MainPage()
{
    this.InitializeComponent();
    Window.Current.Activated += Current_Activated;
}

private void Current_Activated(object sender, Windows.UI.Core.WindowActivatedEventArgs e)
{
    Window.Current.Activated -= Current_Activated;
    Debug.WriteLine("Activated");
    WebAuthenticationBroker.AuthenticateAndContinue(new Uri("https://google.com"));
}

当然它需要一些改进,但应该有效。请记住,出于多种原因可能会调用 Activeted 事件,例如在显示对话框后。