web-dev-qa-db-ja.com

Google Plusログインの統合で「内部エラーが発生しました」

次のリンクで提供される指示に従って、アプリケーションにGoogleプラスログインを統合しようとしています: https://developers.google.com/+/quickstart/Android#install-sdk

私はすべての指示に完璧に従っています。 Android-sdkで提供される実際のデバイスでサンプルアプリケーションを実行し、signinボタンをクリックすると、An internal error occurred

私は何を間違えていますか?

42

これは、APIコンソールプロジェクトでクライアントIDの署名を設定していない場合、またはkeytoolから間違ったキー値をコピーした場合に発生する可能性があります。その方法は、手順7、8、9、および10の クイックスタートガイド の手順に記載されています。

31
Vic Fryzel

この問題があり、SHAとパッケージ名が異なる10個の異なるクライアントIDを作成した後でも、Consent screenを入力する必要があることが判明するまで動作しません。

GoogleDevelopers Consoleによると-

クライアントIDを使用してプライベートデータへのアクセスをリクエストすると、同意画面がユーザーに表示されます。

Consent screen

87
mjosh

PlusClient.Builderで.setScopes("PLUS_LOGIN")を削除することで問題を解決しました。

16
marcogramy

Androidアプリケーションでこのトーストメッセージエラーが発生しました:

An internal error occurred

要約:

AndroidアプリとAndroid APIサーバーがアクセスを許可します。正しいパッケージ名を追加していないことが原因と考えられますまたは、SHA1フィンガープリントを修正します。間違った設定を削除して正しく実行するには、次の手順を実行しました。

修正手順:

  1. Google APIコンソールにアクセスしてログインします: https://code.google.com/apis/console

  2. [APIアクセス]タブをクリックします。

  3. [別のクライアントIDを作成]ボタンをクリックします。

  4. 「インストール済みアプリケーション」ラジオボタンを選択します。

  5. 「Android」ラジオボタンを選択します。

  6. 上記のエラーを表示しているAndroidアプリのパッケージ名を入力してください。PlusSampleActivity.Javaコードファイルの先頭で定義されています。私にとってはcom.googleです。 Android.gms.samples.plus

  7. SHA1フィンガープリント値を取得します。

    a。コマンドkeytool -list -v -keystore /home/el/.Android/debug.keystoreを使用します。パスワードを入力します。設定しない場合、デフォルトのパスワードは「Android」です。

    b。 SHA1フィンガープリントが画面に表示されるので、それをコピーします。

  8. 上記の値を「署名証明書の指紋(SHA1):」ボックスに貼り付けます。

  9. 「クライアントIDを作成」ボタンをクリックします。

  10. Androidアプリケーションを再度実行し、[サインイン]をクリックします。

これで、「GoogleでGoogle+ SDKにサインインする」アクティビティが表示されます。

10
Eric Leschinski

私の場合、解決策は、同意画面で実際にメールアドレスを設定することでした。最初に、このデータなしでフォームをエラーなしで保存できる奇妙な理由です。他の人が提案したことを確認した後、そのフォームに自分のメールアドレスを設定するとすぐに、機能し始めました。

4
Alex FJ

私は幸運なしに完全な研究でこれを修正する方法を探していましたが、最終的に私は次のアプローチでこの問題を解決することができました。

これを解決する前に(少なくともtiがどのように機能したか)、ドキュメントのすべてが正しく、コード行などを変更する必要がないと言わなければなりません。 https://cloud.google.com/consoleクラウドコンソールのバグのように見えます

まず、ドキュメントに記載されている正しいSHA1とプロジェクトのパッケージ名を取得していることを確認しますhttps://developers.google.com/+/quickstart/Android

今、私が気づいたこのバグ(少なくとも私にとって)は、私のクラウドコンソールで、私が作成したプロジェクトは古いインターフェースでずっと前であり、数ヶ月前に新しいGUIに移行したことでした。コンソールでは、新しいプロジェクトには自動生成されたproject idがありますatlantean-ares-331古いプロジェクトはproject idとして表示されないlong integer値を取得しました。したがって、プロジェクトが古いGUIで作成され、OAuthの新しいクライアントIDを作成したばかりの場合、Googleでサインインしようとするとトースト「内部エラーが発生しました」が表示されます。

修正方法

  1. クラウドコンソールに移動します
  2. newプロジェクトを作成しますoldprojectname-gplusのような名前を提案します
  3. APIセクションでGoogle+ APIを有効にします
  4. どのプロジェクトにも同じパッケージ名がないことを確認してくださいOAuthこれ以外の場合に使用するものとクライアントID ErrorThis client ID is globally unique and is already in use。(古いパッケージを削除する必要がありますOAuth今使用するパッケージ名と同じクライアントID)。

  5. 資格情報OAuth用の新しいクライアントIDの作成に進みます。

インストールされたアプリケーション

Android

プロジェクトのパッケージ名とSHA1を入力します

完了

3
Thano

問題に対する私の解決策は次のとおりでした。

他の人が推奨することはすべてやったので、パッケージ名とSHA1キーに関する誤字はありませんでした。また、キーを削除してから再度追加しようとしましたが、役に立ちませんでした。

キーを削除し、newプロジェクトを作成するのに役立ちました( https://code.google.com/apis/console )そして、そこにクライアントID(package + sha1を使用)を再度作成します。その後(5秒)すべてが私のAndroidデバイスで動作しました。

2
Zsolt Safrany

私の場合、問題はアプリのパッケージ名を変更し、開発コンソールで更新しなかったことです。

1
Ilya Gazman

この問題は、APIコンソールからの許可に関連しています。

sCOPE_PLUS_LOGINに関連する権限を使用している場合、APIコンソールで、OAuthクライアントID用と公開APIキー用の2つのキーを作成する必要があります。

1
Oscar Calderon

デバッグにdebug.keystoreにSHA1を使用し、アプリケーションをエクスポートした後、アプリケーションのエクスポートに使用したキーストアにSHA1を生成するのを忘れると、同じ問題が発生しました。

0
makuno

テストには必ず組み込みのデバッグキーストアを使用してください。他のすべてが正常に機能していましたが、開発者コンソールの資格情報に本番キーストアのSHA1フィンガープリントを設定していたため、機能しませんでした。

0
MikkoP

見落とされることが多いのはパッケージ名です。上記のEric Leschinskiによるステップ6を明確にしたい(コメントはできません):必要なパッケージはアクティビティのパッケージではなく、アプリのマニフェストのパッケージです。

AndroidManifest.xmlのルート要素から正しい値を取得できます。

<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="com.ntk.darkmoor"
    Android:versionCode="1"
    Android:versionName="1.0" >

この例では、クライアントIDの作成中に「com.ntk.darkmoor」を定義します

0
nikos.t

Google IO 2013に目を向け、PlusClientの初期化を変更し、それが機能するようになりました。

public static final String AUTH_SCOPES[] = {
    Scopes.PLUS_LOGIN,
    "https://www.googleapis.com/auth/userinfo.email",
    "https://www.googleapis.com/auth/developerssite" };

mPlusClient = new PlusClient.Builder(this, this, this)
    .setScopes(AUTH_SCOPES)
    .build();
0
Tushu

Googleコンソールでプロジェクトを再作成することは、他のいくつかの試みの後でうまくいきました。

何らかの理由で、私のプロジェクトにはプロジェクトIDがありません(古いコンソール/新しいコンソール?)。

Thano(上記)が示唆したように、新しいプロジェクトを作成し、クライアントIDを作成しました...アドバイスありがとうございます!!

0
user2996950

私にとっては、デバッグキーを使用してインストールするときに、プロダクションキーを使用しようとしていました。適切なキーストアから適切なSHA1を使用していることを確認してください。

0
jcaruso

解決策をありがとうThanoクラウドコンソールで新しい外観を取得すると、新しいプロジェクトにはこのatlantean-ares-331のような自動生成されたプロジェクトIDがありますが、古いプロジェクトには表示されないプロジェクトIDとして長い整数値があります。古いGUIで、OAuthの新しいクライアントIDを作成したばかりの場合、Googleでサインインしようとすると「内部エラーが発生しました」というトーストが表示されます。」

0
psikario

サンプルアプリケーションを実行しようとしたときにこのエラーに直面した場合、またはその中で正常に実行されていた他のマシンで作成したプロジェクトをコピーし、実行しようとしている他のマシンでそのようなポップアップエラーを与えた場合、以下の方法に従うことができます。

テスト/デバッグ目的でアプリを構築している場合、

1.プロジェクトをコピーし、キーストアに提供されたパッケージ名とパスに対して他のマシンで実行する場合、新しいSHA1を生成します。

2.新しく生成されたSHA1の開発者コンソールでClientIdを変更し、プロジェクトをコピーして実行しようとしている新しいマシンで実行します。

0
ManishSB