2017-02-01 10 views
0

xamarinアンドロイドアプリでGoogle認証を実装しようとしています。私はOAuth2Authenticatorを使用してユーザーを認証しています。認証後、access_token.Howを返すだけで、ユーザーがアプリケーションを開くたびにログインする必要がないようにrefresh_tokenを取得できますか?私は、ユーザーGoogleの更新トークンを取得できませんxauth2 with xamarin android

var auth = new OAuth2Authenticator(
      clientId: "***************************.apps.googleusercontent.com", 
      scope: "https://www.googleapis.com/auth/userinfo.profile", 
      authorizeUrl: new Uri("https://accounts.google.com/o/oauth2/auth"), 
      redirectUrl: new Uri("https://www.googleapis.com/plus/v1/people/me"), 
      accessTokenUrl: newUri("https://www.googleapis.com/oauth2/v4/token"), 
      clientSecret: "*********************", 
      getUsernameAsync: null); 


auth.Completed += async (sender, e) => 
      { 
       if (!e.IsAuthenticated) 
       { 
        Toast.MakeText(this, "Fail to authenticate!", ToastLength.Short).Show(); 
        return; 
       } 
       string access_token; 
       e.Account.Properties.TryGetValue("access_token", out access_token); 
} 
+1

あなたは問題を解決するために何を試しましたか?目標を達成するために使用しているコードを追加してください。 – Demitrian

+0

@Demitrian私は上記のaccesstokenとリフレッシュトークンを要求するために使用しているコードを追加しました!どうぞよろしくお願いします。 – Ginna

+0

@Ginna、あなたは応答に応答トークンがない、または応答をどのように抽出したのか分からないと言いますか? – Nkosi

答えて

0

を認証するために、次のコードを使用している

代わりに、もはやログインのためのアプリのWebViewの中で構築されたを使用して推薦によるGoogleにXamarin.AuthとGoogleでいくつかの問題があるようで、デバイスブラウザを使用する必要があります。この上のGoogleの記事を参照してください。

https://developers.googleblog.com/2016/08/modernizing-oauth-interactions-in-native-apps.html

あなたはXamarin.Authは、デフォルトではないとして、アプリに組み込まれてのWebViewを使用する場合(上記のリンク先の記事ごと)として、あなたはリフレッシュトークンを取得することはありません:

対照的に、OAuthに埋め込みブラウザを使用する旧式の方法は、ユーザーがデバイスからの既存のログインセッションを使用する代わりに、毎回Googleにサインインする必要があることを意味します。

関連する問題