Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Facebook remote_app_id does not match stored id Error

In my application user have to login via facebook, but i am getting this error,

**my logcat error:**

02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988): Exception during service
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988): com.facebook.orca.protocol.base.ApiException: remote_app_id does not match stored id 
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at com.facebook.orca.protocol.base.ApiResponseChecker.b(ApiResponseChecker.java:74)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at com.facebook.orca.protocol.base.ApiResponseChecker.a(ApiResponseChecker.java:103)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at com.facebook.orca.protocol.base.ApiResponse.g(ApiResponse.java:208)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at com.facebook.katana.server.protocol.AuthorizeAppMethod.a(AuthorizeAppMethod.java:267)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at com.facebook.katana.server.protocol.AuthorizeAppMethod.a(AuthorizeAppMethod.java:28)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at com.facebook.orca.protocol.base.SingleMethodRunner.a(SingleMethodRunner.java:125)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at com.facebook.katana.server.handler.PlatformOperationHandler.c(PlatformOperationHandler.java:274)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at com.facebook.katana.server.handler.PlatformOperationHandler.a(PlatformOperationHandler.java:175)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at com.facebook.orca.server.OrcaServiceQueue.d(OrcaServiceQueue.java:218)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at com.facebook.orca.server.OrcaServiceQueue.d(OrcaServiceQueue.java:38)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at com.facebook.orca.server.OrcaServiceQueue$3.run(OrcaServiceQueue.java:169)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at android.os.Handler.handleCallback(Handler.java:587)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at android.os.Handler.dispatchMessage(Handler.java:92)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at android.os.Looper.loop(Looper.java:123)
02-14 18:00:01.821: WARN/fb4a:fb:OrcaServiceQueue(10988):     at android.os.HandlerThread.run(HandlerThread.java:60)
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988): Failed to send
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988): com.facebook.orca.ops.ServiceException: API_ERROR: API_ERROR
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988):     at com.facebook.orca.ops.OrcaServiceOperation.c(OrcaServiceOperation.java:610)
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988):     at com.facebook.orca.ops.OrcaServiceOperation.c(OrcaServiceOperation.java:40)
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988):     at com.facebook.orca.ops.OrcaServiceOperation$2.run(OrcaServiceOperation.java:575)
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988):     at android.os.Handler.handleCallback(Handler.java:587)
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988):     at android.os.Handler.dispatchMessage(Handler.java:92)
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988):     at android.os.Looper.loop(Looper.java:123)
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988):     at android.app.ActivityThread.main(ActivityThread.java:3687)
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988):     at java.lang.reflect.Method.invokeNative(Native Method)
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988):     at java.lang.reflect.Method.invoke(Method.java:507)
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
02-14 18:00:01.876: WARN/fb4a:fb:GDPDialog(10988):     at dalvik.system.NativeStart.main(Native Method)

i'm creating hash key like this,

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\rama\.android\debug.keystore" | "C:\openssl-0.9.8k_X64\bin\openssl" sha1 -binary | "C:\openssl-0.9.8k_X64\bin\openssl" base64

i got key then added to facebook setting.

give me some good idea to this,

thanks.

like image 256
Jeeva123 Avatar asked Feb 14 '13 12:02

Jeeva123


1 Answers

In the main Activity of your application, in the onCreate(), put this code and run the app.

This will give you the correct Key Hash that is needed by Facebook. Apparently, JRE 1.7 does that occasionally.

Copy the result that will be displayed in the logcat trace and paste in your App's Facebook console and you should be good to go.

try {
    PackageInfo info = getPackageManager().getPackageInfo(
            "ENTER.YOUR.PACKAGE.NAME", PackageManager.GET_SIGNATURES);
    for (Signature signature : info.signatures) {
        MessageDigest md = MessageDigest.getInstance("SHA");
        md.update(signature.toByteArray());
        Log.e("MY KEY HASH:",
                Base64.encodeToString(md.digest(), Base64.DEFAULT));
    }
} catch (NameNotFoundException e) {

} catch (NoSuchAlgorithmException e) {

EDIT: Almost forgot. Don't forget to replace the ENTER.YOUR.PACKAGE.NAME with your app's package name. ;-)

UPDATE:

Solution 1:

Try this link: http://www.helloandroid.com/tutorials/using-facebook-sdk-android-development-part-1. I found that using the Facebook method of getting a Hash Key did not always work as advertised. This link however, has a different method of getting the Hash Key and has pretty much always worked.

Solution 2:

That being said, I always found the simplest thing to do was, let the Facebook SDK tell you what your Hash Key is. This is by far more simpler and shouldn't take more than a couple of minutes.

Step 1: In your Facebook SDK, locate the Util.java class. In that, change this:

private static boolean ENABLE_LOG = false;

to:

private static boolean ENABLE_LOG = true;

Step 2: Create a new Signed APK, transfer to your device and install. If it is already installed, naturally, it will prompt.

Step 3: With your DDMS (Logcat) running and your device connected to the computer, run the application and keep looking for a key mismatch warning. That warning has the actual Hash Key. Copy that key, go to your Facebook Developer page and add the new key to the list.

like image 77
Siddharth Lele Avatar answered Oct 17 '22 00:10

Siddharth Lele