OAuthで実際にこれを実装しようとしたことはありません。私はGoogleとFacebookからアクセストークンとプロファイルデータを取得したいと思います。 Xamarin.Authを使用します。Google OAuthのためのリダイレクトURL
Facebookでは問題はありません。私は "http://www.facebook.com/connect/login_success.html"をリダイレクトURLとして指定し、ログインした後は以前の活動に戻ります。
は、しかし、Googleと、それはのように滑らかではない - しかし私は従っ"Redirect_url_mismatch" A native application: application name
になるだろうサインインした後、URLホワイトリストをリダイレクトするためにこれを追加しました - Facebookのログイン成功ページへのいずれかが似て見つけることができなかった、どこかで「
https://www.googleapis.com/plus/v1/people/me」を使用する提案を見つけました私は "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;
のURL:上記のコードでは
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}";