2017-08-18 13 views
3

現在、私はXamarin Formsアプリケーションを開発中で、Google認証を追加しました。ここ は、PCLからの私のコードです:XamarinフォームGoogle認証、エラー:disallowed_useragent

 
var authenticator = new OAuth2Authenticator(
    clientId, 
    null, 
    Constants.Scope, 
    new Uri(Constants.AuthorizeUrl), 
    new Uri(redirectUri), 
    new Uri(Constants.AccessTokenUrl), 

    null, 
    true); 

authenticator.Completed += this.OnAuthCompleted; 
authenticator.Error += this.OnAuthError; 

AuthenticationState.Authenticator = authenticator; 

var presenter = new Xamarin.Auth.Presenters.OAuthLoginPresenter(); 
presenter.Login(authenticator);

私はこれは私が受け取るものです1.5.0.3 ある、Xamarin.Authの最新バージョンを使用しています:Screenshot

私は多くの記事やコード例を経て、しかし、のように見えます多分Googleは彼らの認証をもう一度更新しました。 Link 1,Link 2,Link 3,Link 4。 Xamarin.Formsの公式ページのイベントが無効で、動作していませんLink 5

いくつかのコード例を確認しましたが、やはり成功しませんでした。Sample 1と複数のサンプルhereです。私はソースをダウンロードし、それが動作していると期待して使用しようとしましたが、失敗しています。

この問題または最新の問題の解決方法はありますか?問題が解決しています。同様にコードサンプルも素晴らしいでしょう。

ありがとうございます!

+0

というGAppsをインストールしてください。Genemotionエミュレータのように見えますが、Playストア経由でChromeがインストールされていますか? – SushiHangover

+0

私はgenymotionに特別なものをインストールしていません。 http://prntscr.com/g9ye5c http://prntscr.com/g9yei5 これはデフォルトでgoogleがありますが、私はchromeをインストールしないでください。 –

答えて

2

Androidの場合、セキュリティ上の理由により、WebViewの代わりにChrome Custom Tabsを使用する必要があります。

あなたはエミュレータ(またはデバイス)を実行している場合(OEMまたはPlayストア経由でプリインストール)クロームがインストールされていない、そしてXamarin.AuthはバックWebViewを使用するデフォルト設定されますこと。これは、GoogleがChrome(端末OEMによってChromeがプリインストールされていない可能性がある中国など)の一部地域で受け入れられることになります。そうでないと、WebViewクライアントはdisallowed_useragentエラーで拒否されます。

GenyMotionエミュレータを使用している場合は、Playストア経由でChromeをインストールしてください。 Playストアをインストールしていない場合は、http://opengapps.orgから

+0

これは働いた!どうもありがとうございました! –

関連する問題