web-dev-qa-db-ja.com

SERVER_ERROR:[コード] 1675030 [メッセージ]:クエリ実行エラー

AndroidでFacebookログインを使用しています。
コード:

callbackManager = CallbackManager.Factory.create();
    LoginButton loginButton = (LoginButton) this.findViewById(R.id.login_button);
    loginButton.setReadPermissions("email", "public_profile");
    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            // App code
            Log.println(Log.ASSERT, "FB", "inicio session ");
        }

        @Override
        public void onCancel() {
            Log.println(Log.ASSERT, "FB", "OP NO completada");
            // App code
        }

        @Override
        public void onError(FacebookException exception) {
            Log.println(Log.ASSERT, "FB", " Errro de sesion ");
            exception.printStackTrace();
            // App code
        }
    });

ただし、常に次のエラーが発生します。

SERVER_ERROR:[コード] 1675030 [メッセージ]:クエリの実行中にエラーが発生しました。 [extra]:操作「ProxyAuthAppLoginQuery」の実行中のエラー:Query.proxy_auth_app_loginで:フィールドの解決に失敗しました。 W/System.err:
com.facebook.login.LoginManager.onActivityResult(LoginManager.Java:190)W/System.err:at com.facebook.login.LoginManager $ 1.onActivityResult(LoginManager.Java:159)W/System。 err:com.facebook.internal.CallbackManagerImpl.onActivityResult(CallbackManagerImpl.Java:82)W/System.err:at com.procibernetica.moca.MainActivity.onActivityResult(MainActivity.Java:130)W/System.err:at Android .app.Activity.dispatchActivityResult(Activity.Java:5423)W/System.err:at Android.app.ActivityThread.deliverResults(ActivityThread.Java:3401)W/System.err:at Android.app.ActivityThread.handleSendResult(ActivityThread .Java:3448)W/System.err:at Android.app.ActivityThread.access $ 1300(ActivityThread.Java:138)W/System.err:at Android.app.ActivityThread $ H.handleMessage(ActivityThread.Java:1284) W/System.err:at Android.os.Handler.dispatchMessage(Handler.Java:102)W/System.err:
Android.os.Looper.loop(Looper.Java:149)W/System.err:at Android.app.ActivityThread.main(ActivityThread.Java:5061)W/System.err:at Java。 lang.reflect.Method.invokeNative(Native Method)W/System.err:at Java.lang.reflect.Method.invoke(Method.Java:515)W/System.err:at com.Android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.Java:787)W/System.err:at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:603)W/System.err:at dalvik.system.NativeStart.main (ネイティブメソッド)

次の権限を追加しました。

<uses-permission Android:name="Android.permission.INTERNET"/>
<uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE"/>
43
Daniel ORTIZ

私は解決策を見つけました、これはあなたのアプリにユーザーを評価していないときに追加されます。

パネルアプリに入力してくださいRol

enter image description here

テストユーザーを追加します。テストユーザーでログインしようとすると、アプリケーションは失敗せずに実行されます。

enter image description here

49
Daniel ORTIZ

Facebookのドキュメントが正しくありません。動作させるには、3つの既定のアクセス許可をすべて追加する必要がありました。

loginButton.setReadPermissions("email", "public_profile", "user_friends");
26
aloha

@ダニエルの答えは正しいですが、私はその中にさらに追加したいと思います。このタイプのエラーは、アプリが開発中の場合にのみ発生します。この link に従って、アプリを選択します。その後、ここで2つのことができます。 ロールタブから、あなたの友人にのみログインを許可するか、またはアプリレビューを選択することができますそしてapp publicを作成すると、誰でもログインできるようになります。

20
AMAN SINGH

Firebase UIがAndroid:valueを指定していたため、同様の問題が発生していました。これは私がそれを解決した方法です:

    <application
    Android:icon="@mipmap/ic_launcher"
    Android:label="@string/app_name"
    Android:theme="@style/AppTheme.Base">

    <meta-data
        Android:name="com.facebook.sdk.ApplicationId"
        tools:replace="Android:value"
        Android:value="@string/facebook_app_id" />
<acitivity
...
</activity>
...
15
CacheMeOutside

上記のすべての答えは私を助けませんでした、あなたがこのコマンドを使用したとき何がしたか

keytool -exportcert -alias androiddebugkey -keystore ~/.Android/debug.keystore | openssl sha1 -binary | openssl base64

facebookの設定に入れたキーハッシュを取得します。

パスワードの入力を求められます。最初は何も設定していなかったため、パスワードとしてAndroidを入力したときに問題が発生しました。動いた !

10
Ahmad El-Melegy

ライブ開発者モード 開発者モードのステータスを確認してください。 「ライブ」でなければなりません。まず、Facebookのログインまたはテストをテストする独自のFacebookプロジェクトのプライバシーURLを追加する必要があります。次に、開発者モードを有効にします(オンにします)。

5
Thanh vũ

私の場合、間違ったOpenSSLを使用していたため、生成されたハッシュキーは間違っていました。私はopenssl-0.9.8e_X64.Zipの代わりにopenssl-0.9.8k_X64.Zipを使用していましたが、これにより間違ったハッシュキーが生成され、この問題を引き起こしました。

3
Ivan

私の場合、問題はFacebookアプリのページで送信する必要がある間違ったキーハッシュを生成しましたこの記事で見つかった解決策 https://developers.facebook.com/docs/facebook-login/Android/advanced

キーハッシュを手動で確認する-Facebookに送信されたキーハッシュを印刷して、App Dashboardでその値を使用できます。メインアクティビティでonCreate()にこの変更を加えます。

try 
{
    PackageInfo info = getPackageManager().getPackageInfo(
                        "com.facebook.samples.loginhowto",
                        PackageManager.GET_SIGNATURES);

    for (Signature signature : info.signatures) {
        MessageDigest md = MessageDigest.getInstance("SHA");
        md.update(signature.toByteArray());
        Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
    }
} catch (NameNotFoundException e) {  


} catch (NoSuchAlgorithmException e) {  

}
3
user954174

他の回答に加えて、ログインに使用されているアカウントのメールが検証されていることも確認してください。

2
Muddassir Ahmed

このエラーは他の状況でも返されます-アプリが公開されている場合やテスターとしてリストされている場合でも。

再確認してください

<meta-data Android:name="com.facebook.sdk.ApplicationId" Android:value="@string/facebook_app_id"/>

特に、strings.xmlでハードコーディングするのではなく、gradleビルドを使用して動的に指定する場合、正しいFacebookアプリIDに解決されます。

2
Voy

問題ログ:SERVER_ERROR:[コード] 1675030 [メッセージ]:クエリ実行エラー

そして、この特定の問題に対する正確なソリューションクエリ実行エラー
@ alohaによって回答され、アクセス用のクエリを更新します。
loginButton.setReadPermissions( "email"、 "public_profile"、 "user_friends");

  1. Facebookのログインボタンが呼び出された場所を見つけます。
  2. 次に、ボタンのReadPermissionを "email"、 "public_profile"、 "user_friends"として設定します

画像参照

enter image description here

問題ログ:App Not Setup。このアプリはまだ開発モードです。そして、あなたはそれにアクセスできません。テストユーザーを登録するか、アプリ管理者に許可を求めます

  1. アプリはライブモードではありません
  2. に管理者またはテスターとしてリストされていません
    https://developers.facebook.com/app/yourapp
  3. アプリハッシュキーが設定されていません。 Facebookアプリをライブモードにできない場合は、テストするためにハッシュキーが必要です。アプリはまだライブではないためです。 Facebookはアクセスを許可しません。

ライブモードに変更する方法
1。に行く: https://developers.facebook.com
2。 「マイアプリ」リストでアプリを選択します
3。スイッチをオフからオンに切り替えます

enter image description hereenter image description here

テストとして追加する方法OR ADMIN
1。に行く: https://developers.facebook.com
2。 「マイアプリ」リストでアプリを選択します
3。移動:ロール>ロール>管理者の例の追加を押します enter image description here 4.新しい管理者/テスターのFacebookアカウントを検索します。
enter image description here 5.管理者は確認のためにFacebookのパスワードを入力する必要があります。その後、送信します enter image description here
新しい管理者は、developer.facebookページに移動してリクエストを受け入れる必要があります
6。に行く: https://developers.facebook.com

7。プロフィール>リクエスト>確認
enter image description hereList item 8.おめでとう新しい管理者として割り当てられました

開発用のハッシュキーを取得および設定する方法
as Facebookログインドキュメントを参照
https://developers.facebook.com/docs/Android/getting-started/#create_hash
私が最も望ましい解決策は、コードによるものです(サンプルアプリのトラブルシューティング
ハッシュキーを出力します。更新できます
https://developers.facebook.com/apps/yourFacebookappID/settings/basic/
onAndroid> Key Hashesセクション

hashKeyを取得する方法の段階的なプロセス

  1. まず、oncreateメソッドにコードを追加します

    enter image description here

  2. アプリを実行し、LogcatでKeyHashを検索します

    enter image description here

Facebook Developerでの更新方法に関する段階的なプロセス。

  1. Facebook開発者ページを開きます。 Facebook開発者ページを更新するためのアクセス権が必要です: https://developers.facebook.com

  2. 次の手順に従ってください。

    enter image description here

2
Muhammad Asyraf

文字列リソース「facebook_application_id」をstrings.xmlに追加します

aPP_IDをFacebookアプリIDに置き換えます

<string name="facebook_application_id" translatable="false">APP_ID</string>
1
S.D