Question

I am having issues with Authentication in my Windows Phone 7 app using Facebook SDK .net

here is the authentication part

var facebookClient = new FacebookClient();
facebookClient.AppId = FacebookAppId;
facebookClient.AppSecret = FacebookSecret;

var authUrl = facebookClient.GetLoginUrl(new
{
   client_id = FacebookAppId,
   client_secret = FacebookSecret,
   scope = "publish_stream",
   response_type = "token",
   display = "touch",
   redirect_uri = "https://www.facebook.com/connect/login_success.html"
});               

browser.Navigate(authUrl);

So the browser screens seem to work fine, login screen shows and then the permissions screens show. When I press OK on the last permission screen I just get a white screen. In fact I have been staring at this white screen for 10mins now.

Any ideas?

Here is the Browser.Navigated event handler. I have commented where I have put breakpoints

async void browser_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
    FacebookOAuthResult result;
    var facebookClient = new FacebookClient(); // Put break point here to make sure the event is handled

    if(facebookClient.TryParseOAuthCallbackUrl(e.Uri, out result))
    {
        if (result.IsSuccess) // Put break point here to check result but its never reached
        {
            Logging.WriteLine("Authentication was a success!");

            Classes.Facebook.Instance.AccessToken = result.AccessToken;

            CreateFacebookPost();                
        }
        else
        {
           MessageBox.Show(string.Format("Error: {0}\nReason:{1}", result.ErrorDescription, result.ErrorReason), "Authentication Error", MessageBoxButton.OK);
           Logging.WriteLine("Authentication Failed");
           Logging.WriteLine(string.Format("Error: {0}\nReason:{1}", result.ErrorDescription, result.ErrorReason));
         }

        browser.Visibility = System.Windows.Visibility.Collapsed;
        browser.Navigated -= browser_Navigated;

     }
}

EDIT 1: Just some more info. I know the authentication (from Facebooks view) is a success as I can now see the app on my Facebook. Also, if I push back on the phone to go to previous screen of the app and then go back into the facebook section it shows everything is ok and I can make posts.

EDIT 2: Using very similar code, this works fine in a Windows Phone 8 app. I have compared the 2 and can't seen any difference.

Was it helpful?

Solution

Looks like I have found the solution. You have to set IsScriptedEnabled=True on the WebBrowser control. By default it is false.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top