Никогда не работал с OAuth, пытаясь реализовать его сейчас, я хочу получить данные токена доступа и данные профиля из Google и Facebook. Использование Xamarin.Auth.URL-адрес перенаправления для Google OAuth Android
С Facebook нет проблем, я указываю «http://www.facebook.com/connect/login_success.html» как URL-адрес перенаправления, и после входа в систему он возвращается к активности, которую я раньше.
Однако с Google это не так гладко - не мог найти похожие на страницы успеха facebook входа в системе, где нашел предложение использовать «https://www.googleapis.com/plus/v1/people/me», - добавил его для перенаправления URL-адрес белого списка, однако после знака я получил бы "Redirect_url_mismatch" A native application: application name
по к их документации я должен использовать «my.package.name:», и снова я добавил, что для перенаправления url-белого списка, попытки входа в систему, на этот раз после входа в экран я получаю второй экран, где мне нужно подтвердить разрешения на чтение и после что я получаю очень короткую ошибку, например, «com.my.package: /? oauthparameterX = value1 ....» и снова перенаправляется на экран разрешения.
Вот мой полный OAuth2Authenticator:
var auth = new OAuth2Authenticator(
clientId: SocialIds.GooglePlusId,
clientSecret: SocialIds.GooglePlusSecret,
scope: OAuthUrl.GoogleScope,
authorizeUrl: new Uri(OAuthUrl.GoogleAuthorize),
redirectUrl: new Uri("https://www.googleapis.com/plus/v1/people/me"),
accessTokenUrl: new Uri("https://accounts.google.com/o/oauth2/token"),
getUsernameAsync: null);
auth.AllowCancel = false;
URLs:
public static string GoogleAuthorize = "https://accounts.google.com/o/oauth2/auth";
public static string GoogleScope = "https://www.googleapis.com/auth/userinfo.email";
public static string GoogleRedirect = "https://www.googleapis.com/plus/v1/people/me";
public static string GoogleUserInfo = "https://www.googleapis.com/oauth2/v1/userinfo?access_token={0}";