Аутентификация в Facebook с помощью Xamarin.Auth

Я использую Xamarin.Auth для входа в систему через facebook в своем приложении (Android/iOS), и все идет хорошо, но при успешном входе профиль facebook открывается и не возвращается в мое приложение. я хочу перенаправить на домашнюю страницу моего приложения, не показывая профиль facebook. я следую этому учебнику и не добился успеха. я думаю, что я не даю правильные URL-адреса моего приложения. Пожалуйста, дайте мне предложения. ваша помощь будет оценена спасибо заранее.

вот мой код loginPageRenderer:

[assembly: ExportRenderer (typeof (FBLoginPage), typeof (LoginPageRendrerr))]
 namespace FFirst_app.Droid
 {
public class LoginPageRendrerr : PageRenderer
{
    protected override void OnElementChanged(ElementChangedEventArgs<Page> e)
    {
        base.OnElementChanged(e);

        // this is a ViewGroup - so should be able to load an AXML file and FindView<>
        var activity = this.Context as Activity;

        var auth = new OAuth2Authenticator (
            clientId: "7b745e26dbb64e1a3a3bf6bfd33165bc", // your OAuth2 client id
            scope: "basic", // the scopes for the particular API you're accessing, delimited by "+" symbols
            authorizeUrl: new Uri("https://apps.facebook.com/myappppppp"),//("https://api.instagram.com/oauth/authorize/"), // the auth URL for the service
            redirectUrl: new Uri ("http://www.facebook.com/connect/login_success.html")); // the redirect URL for the service

        auth.Completed += (sender, eventArgs) => {
            if (eventArgs.IsAuthenticated) 
            {
                App.SuccessfulLoginAction.Invoke();

                // Use eventArgs.Account to do wonderful things
                App.SaveToken(eventArgs.Account.Properties["access_token"]);

                string sessionToken = App.Token;   //  /* Authenticate the user with Facebook and fetch a session token */;
                DateTime expiration =  DateTime.Today;  ///* The expiration time for the session token */;
                string facebookId = Constants.FBAppId;
                 ParseFacebookUtils.LogInAsync (facebookId, sessionToken, expiration);

            } else {
                // The user cancelled
            }



        };

        activity.StartActivity (auth.GetUI(activity));
    }
}

 }

person Shahzaib Maqbool    schedule 02.02.2016    source источник


Ответы (2)


Я нашел ответ, что ошибся с URL-адресами, и теперь он работает после того, как я изменил «authorizeUrl:» на «http://www.facebook.com/connect/login_success.html", и этот URL-адрес также установлен в приложении FB как есть. Так что теперь мой код работает правильно.

person Shahzaib Maqbool    schedule 26.03.2016

На странице Приступая к работе с Xamarin.Auth упоминается, что вы сами закрыть пользовательский интерфейс на iOS:

auth.Completed += (sender, eventArgs) => {

    // We presented the UI, so it's up to us to dimiss it on iOS.
    **> DismissViewController (true, null); <**

    if (eventArgs.IsAuthenticated) {
        // Use eventArgs.Account to do wonderful things
    } else {
        // The user cancelled
    }
};
person Kzrystof    schedule 09.02.2016