android फेसबुक प्रमाणीकरण एसडीके अपने मोड के आधार पर बहुत अलग तरीके से व्यवहार क्यों कर रहा है?




facebook firebase (4)

आपका लॉग इन कुंजी हैश से मेल नहीं खाता है, इसलिए आपको फेसबुक डेवलपर खाते में कुंजी हैश जोड़ने की आवश्यकता है मैं एक फ़ंक्शन कोड की शांति साझा कर रहा हूं जिसे आपको इस फ़ंक्शन को कॉल करने और लॉग इन करने की आवश्यकता है जो लॉग आपको दिखाते हैं, बस अपने fb खाते में keyhash अपडेट करें ..

public void generatekeyhash() {
    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                getPackageName(),
                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 (PackageManager.NameNotFoundException e) {

    } catch (NoSuchAlgorithmException e) {

    }
}

मेरे पास ऐप स्टोर में एक एंड्रॉइड ऐप है। यह बैक-एंड पर फायरबेस का उपयोग करता है और फेसबुक (और Google) के माध्यम से सामाजिक लॉगिन प्रदान करता है।

हाल ही में फेसबुक ने मुझसे संपर्क करने के लिए मुझसे संपर्क किया है कि फेसबुक के माध्यम से लॉग इन करते समय मेरा ऐप क्रैश हो रहा है / उत्तरदायी नहीं है। उलझन में, मैं कुछ परीक्षण पर शुरू हुआ।

मैंने जो पाया वह यह है कि अगर मैं फेसबुक लॉगिन का उपयोग फेसबुक ऐप इंस्टॉल किए बिना करता हूं, तो सब कुछ पूरी तरह से काम करता है। उपयोगकर्ता को एक ब्राउज़र विंडो दिखाई जाती है, लॉगिन कर सकते हैं, और वे मेरे ऐप पर वापस निर्देशित हो जाते हैं और मेरी पहचान होती है। बेशक, मुझे यह सब विकास के दौरान मिला लेकिन मैं इस बात की पुष्टि करना चाहता था कि चीजें अभी भी काम कर रही हैं।

लेकिन जब मैंने फेसबुक ऐप इंस्टॉल किया (कुछ मैंने विकास के दौरान करने की उपेक्षा की), तो मैंने पाया कि यह अब काम नहीं करता है। इसके बजाय, उपयोगकर्ता इस पृष्ठ पर पुनर्निर्देशित होता है:

खोज और पहुंच के लिए, इस छवि का पाठ पढ़ता है:

लॉगिन त्रुटि: इस एप्लिकेशन में आपको लॉग इन करने में एक त्रुटि है। बाद में पुन: प्रयास करें।

मैंने लॉग की जाँच की है जब ऐसा होता है और निम्नलिखित पाया गया जो प्रासंगिक हो सकता है लेकिन मुझे वास्तव में यकीन नहीं है:

07-05 15:36:28.468   908  5828 I ActivityManager: START u0 {act=NATIVE_WITH_FALLBACK cmp=<<redacted>>/com.facebook.FacebookActivity (has extras)} from uid 10264
07-05 15:36:28.469   665   665 D QCOM PowerHAL: LAUNCH HINT: ON
07-05 15:36:28.470   665   665 D QCOM PowerHAL: Activity launch hint handled
07-05 15:36:28.495  4837  4837 W ActivityThread: handleWindowVisibility: no activity for token android.os.[email protected]
07-05 15:36:28.689   665   665 D QCOM PowerHAL: LAUNCH HINT: OFF
07-05 15:36:28.946 29406  4941 W fb4a.BlueServiceQueue: Exception during service
07-05 15:36:28.946 29406  4941 W fb4a.BlueServiceQueue: X.2LH: [code] 404 [message]: Key hash GtvUdcOKFRAE0RY0LIw5veCA+M8= does not match any stored key hashes. (404) [extra]: null
07-05 15:36:28.946 29406  4941 W fb4a.BlueServiceQueue:         at X.1eL.C(:93)
07-05 15:36:28.946 29406  4941 W fb4a.BlueServiceQueue:         at X.2sO.C(:26)
07-05 15:36:28.946 29406  4941 W fb4a.BlueServiceQueue:         at X.CvC.umA(:38)
07-05 15:36:28.946 29406  4941 W fb4a.BlueServiceQueue:         at X.2yi.handleResponse(:224)
07-05 15:36:28.946 29406  4941 W fb4a.BlueServiceQueue:         at X.1dO.run(:71)
07-05 15:36:28.946 29406  4941 W fb4a.BlueServiceQueue:         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:458)
07-05 15:36:28.946 29406  4941 W fb4a.BlueServiceQueue:         at X.0r0.run(:2)
07-05 15:36:28.946 29406  4941 W fb4a.BlueServiceQueue:         at X.1qG.run(:2)
07-05 15:36:28.946 29406  4941 W fb4a.BlueServiceQueue:         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
07-05 15:36:28.946 29406  4941 W fb4a.BlueServiceQueue:         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
07-05 15:36:28.946 29406  4941 W fb4a.BlueServiceQueue:         at X.12V.run(:3)
07-05 15:36:28.946 29406  4941 W fb4a.BlueServiceQueue:         at X.1xB.run(:12)
07-05 15:36:28.946 29406  4941 W fb4a.BlueServiceQueue:         at java.lang.Thread.run(Thread.java:764)
07-05 15:36:28.981   908  8581 I ActivityManager: START u0 {cmp=com.facebook.katana/.ProxyAuth (has extras)} from uid 10264
07-05 15:36:28.982   665   665 D QCOM PowerHAL: LAUNCH HINT: ON
07-05 15:36:28.983   665   665 D QCOM PowerHAL: Activity launch hint handled
07-05 15:36:29.022 29406 29406 W ActivityThread: handleWindowVisibility: no activity for token android.os.[email protected]
07-05 15:36:29.037 29406 29406 E Instrumentation: Uninitialized ActivityThread, likely app-created Instrumentation, disabling AppComponentFactory
07-05 15:36:29.037 29406 29406 E Instrumentation: java.lang.Throwable
07-05 15:36:29.037 29406 29406 E Instrumentation:       at android.app.Instrumentation.getFactory(Instrumentation.java:1224)
07-05 15:36:29.037 29406 29406 E Instrumentation:       at android.app.Instrumentation.newActivity(Instrumentation.java:1215)
07-05 15:36:29.037 29406 29406 E Instrumentation:       at X.05O.newActivity(:3382)
07-05 15:36:29.037 29406 29406 E Instrumentation:       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2869)
07-05 15:36:29.037 29406 29406 E Instrumentation:       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3086)
07-05 15:36:29.037 29406 29406 E Instrumentation:       at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
07-05 15:36:29.037 29406 29406 E Instrumentation:       at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
07-05 15:36:29.037 29406 29406 E Instrumentation:       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
07-05 15:36:29.037 29406 29406 E Instrumentation:       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
07-05 15:36:29.037 29406 29406 E Instrumentation:       at android.os.Handler.dispatchMessage(Handler.java:106)
07-05 15:36:29.037 29406 29406 E Instrumentation:       at android.os.Looper.loop(Looper.java:193)
07-05 15:36:29.037 29406 29406 E Instrumentation:       at android.app.ActivityThread.main(ActivityThread.java:6718)
07-05 15:36:29.037 29406 29406 E Instrumentation:       at java.lang.reflect.Method.invoke(Native Method)
07-05 15:36:29.037 29406 29406 E Instrumentation:       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
07-05 15:36:29.037 29406 29406 E Instrumentation:       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
07-05 15:36:29.045   908  2933 I ActivityManager: START u0 {flg=0x2000000 cmp=com.facebook.katana/com.facebook.gdp.ProxyAuth (has extras)} from uid 10262
07-05 15:36:29.047   665   665 D QCOM PowerHAL: LAUNCH HINT: ON
07-05 15:36:29.068 29406 29406 W ActivityThread: handleWindowVisibility: no activity for token android.os.[email protected]
07-05 15:36:29.069 29406 29406 E Instrumentation: Uninitialized ActivityThread, likely app-created Instrumentation, disabling AppComponentFactory
07-05 15:36:29.069 29406 29406 E Instrumentation: java.lang.Throwable
07-05 15:36:29.069 29406 29406 E Instrumentation:       at android.app.Instrumentation.getFactory(Instrumentation.java:1224)
07-05 15:36:29.069 29406 29406 E Instrumentation:       at android.app.Instrumentation.newActivity(Instrumentation.java:1215)
07-05 15:36:29.069 29406 29406 E Instrumentation:       at X.05O.newActivity(:3382)
07-05 15:36:29.069 29406 29406 E Instrumentation:       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2869)
07-05 15:36:29.069 29406 29406 E Instrumentation:       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3086)
07-05 15:36:29.069 29406 29406 E Instrumentation:       at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
07-05 15:36:29.069 29406 29406 E Instrumentation:       at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
07-05 15:36:29.069 29406 29406 E Instrumentation:       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
07-05 15:36:29.069 29406 29406 E Instrumentation:       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
07-05 15:36:29.069 29406 29406 E Instrumentation:       at android.os.Handler.dispatchMessage(Handler.java:106)
07-05 15:36:29.069 29406 29406 E Instrumentation:       at android.os.Looper.loop(Looper.java:193)
07-05 15:36:29.069 29406 29406 E Instrumentation:       at android.app.ActivityThread.main(ActivityThread.java:6718)
07-05 15:36:29.069 29406 29406 E Instrumentation:       at java.lang.reflect.Method.invoke(Native Method)
07-05 15:36:29.069 29406 29406 E Instrumentation:       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
07-05 15:36:29.069 29406 29406 E Instrumentation:       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
07-05 15:36:29.074   908  5828 I ActivityManager: START u0 {cmp=com.facebook.katana/com.facebook.gdp.LightWeightProxyAuthActivity (has extras)} from uid 10262
07-05 15:36:29.075   665   665 D QCOM PowerHAL: LAUNCH HINT: ON
07-05 15:36:29.121 29406 29406 W ActivityThread: handleWindowVisibility: no activity for token android.os.[email protected]
07-05 15:36:29.125 29406 29406 E Instrumentation: Uninitialized ActivityThread, likely app-created Instrumentation, disabling AppComponentFactory
07-05 15:36:29.125 29406 29406 E Instrumentation: java.lang.Throwable
07-05 15:36:29.125 29406 29406 E Instrumentation:       at android.app.Instrumentation.getFactory(Instrumentation.java:1224)
07-05 15:36:29.125 29406 29406 E Instrumentation:       at android.app.Instrumentation.newActivity(Instrumentation.java:1215)
07-05 15:36:29.125 29406 29406 E Instrumentation:       at X.05O.newActivity(:3382)
07-05 15:36:29.125 29406 29406 E Instrumentation:       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2869)
07-05 15:36:29.125 29406 29406 E Instrumentation:       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3086)
07-05 15:36:29.125 29406 29406 E Instrumentation:       at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
07-05 15:36:29.125 29406 29406 E Instrumentation:       at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
07-05 15:36:29.125 29406 29406 E Instrumentation:       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
07-05 15:36:29.125 29406 29406 E Instrumentation:       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
07-05 15:36:29.125 29406 29406 E Instrumentation:       at android.os.Handler.dispatchMessage(Handler.java:106)
07-05 15:36:29.125 29406 29406 E Instrumentation:       at android.os.Looper.loop(Looper.java:193)
07-05 15:36:29.125 29406 29406 E Instrumentation:       at android.app.ActivityThread.main(ActivityThread.java:6718)
07-05 15:36:29.125 29406 29406 E Instrumentation:       at java.lang.reflect.Method.invoke(Native Method)
07-05 15:36:29.125 29406 29406 E Instrumentation:       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
07-05 15:36:29.125 29406 29406 E Instrumentation:       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
07-05 15:36:29.166  4837  4846 W System  : A resource failed to call end.
07-05 15:36:29.250   665   665 D QCOM PowerHAL: LAUNCH HINT: OFF
07-05 15:36:29.266   908   952 I ActivityManager: Displayed com.facebook.katana/com.facebook.gdp.LightWeightProxyAuthActivity: +237ms
07-05 15:36:29.266 29463 29463 W BackgroundBroad: type=1400 audit(0.0:9257): avc: denied { read } for name="stats" dev="proc" ino=4026533031 scontext=u:r:untrusted_app:s0:c6,c257,c512,c768 tcontext=u:object_r:proc_qtaguid_stat:s0 tclass=file permissive=0
07-05 15:36:29.447   492  1273 D SurfaceFlinger: duplicate layer name: changing Surface(name=6e58560 com.facebook.katana/com.facebook.gdp.LightWeightProxyAuthActivity)/@0x13e5ed5 - animation-leash to Surface(name=6e58560 com.facebook.katana/com.facebook.gdp.LightWeightProxyAuthActivity)/@0x13e5ed5 - animation-leash#1
07-05 15:36:29.456   492  1273 D SurfaceFlinger: duplicate layer name: changing Surface(name=Dim Layer for - Task=2317)/@0x8471ddb - animation-leash to Surface(name=Dim Layer for - Task=2317)/@0x8471ddb - animation-leash#1
07-05 15:36:29.465   908  2933 I ActivityManager: START u0 {cmp=com.facebook.katana/.gdp.WebViewProxyAuth (has extras)} from uid 10262
07-05 15:36:29.467   665   665 D QCOM PowerHAL: LAUNCH HINT: ON
07-05 15:36:29.469   665   665 D QCOM PowerHAL: Activity launch hint handled
07-05 15:36:29.507 29406 29406 W ActivityThread: handleWindowVisibility: no activity for token android.os.[email protected]
07-05 15:36:29.509 29406 29406 E Instrumentation: Uninitialized ActivityThread, likely app-created Instrumentation, disabling AppComponentFactory
07-05 15:36:29.509 29406 29406 E Instrumentation: java.lang.Throwable
07-05 15:36:29.509 29406 29406 E Instrumentation:       at android.app.Instrumentation.getFactory(Instrumentation.java:1224)
07-05 15:36:29.509 29406 29406 E Instrumentation:       at android.app.Instrumentation.newActivity(Instrumentation.java:1215)
07-05 15:36:29.509 29406 29406 E Instrumentation:       at X.05O.newActivity(:3382)
07-05 15:36:29.509 29406 29406 E Instrumentation:       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2869)
07-05 15:36:29.509 29406 29406 E Instrumentation:       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3086)
07-05 15:36:29.509 29406 29406 E Instrumentation:       at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
07-05 15:36:29.509 29406 29406 E Instrumentation:       at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
07-05 15:36:29.509 29406 29406 E Instrumentation:       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
07-05 15:36:29.509 29406 29406 E Instrumentation:       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
07-05 15:36:29.509 29406 29406 E Instrumentation:       at android.os.Handler.dispatchMessage(Handler.java:106)
07-05 15:36:29.509 29406 29406 E Instrumentation:       at android.os.Looper.loop(Looper.java:193)
07-05 15:36:29.509 29406 29406 E Instrumentation:       at android.app.ActivityThread.main(ActivityThread.java:6718)
07-05 15:36:29.509 29406 29406 E Instrumentation:       at java.lang.reflect.Method.invoke(Native Method)
07-05 15:36:29.509 29406 29406 E Instrumentation:       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
07-05 15:36:29.509 29406 29406 E Instrumentation:       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
07-05 15:36:29.517   908  8581 I ActivityManager: START u0 {cmp=com.facebook.katana/.gdp.ProxyAuthDialog (has extras)} from uid 10262
07-05 15:36:29.519   665   665 D QCOM PowerHAL: LAUNCH HINT: ON
07-05 15:36:29.567 29406 29406 W ActivityThread: handleWindowVisibility: no activity for token android.os.[email protected]
07-05 15:36:29.569 29406 29406 E Instrumentation: Uninitialized ActivityThread, likely app-created Instrumentation, disabling AppComponentFactory
07-05 15:36:29.569 29406 29406 E Instrumentation: java.lang.Throwable
07-05 15:36:29.569 29406 29406 E Instrumentation:       at android.app.Instrumentation.getFactory(Instrumentation.java:1224)
07-05 15:36:29.569 29406 29406 E Instrumentation:       at android.app.Instrumentation.newActivity(Instrumentation.java:1215)
07-05 15:36:29.569 29406 29406 E Instrumentation:       at X.05O.newActivity(:3382)
07-05 15:36:29.569 29406 29406 E Instrumentation:       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2869)
07-05 15:36:29.569 29406 29406 E Instrumentation:       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3086)
07-05 15:36:29.569 29406 29406 E Instrumentation:       at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
07-05 15:36:29.569 29406 29406 E Instrumentation:       at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
07-05 15:36:29.569 29406 29406 E Instrumentation:       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
07-05 15:36:29.569 29406 29406 E Instrumentation:       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
07-05 15:36:29.569 29406 29406 E Instrumentation:       at android.os.Handler.dispatchMessage(Handler.java:106)
07-05 15:36:29.569 29406 29406 E Instrumentation:       at android.os.Looper.loop(Looper.java:193)
07-05 15:36:29.569 29406 29406 E Instrumentation:       at android.app.ActivityThread.main(ActivityThread.java:6718)
07-05 15:36:29.569 29406 29406 E Instrumentation:       at java.lang.reflect.Method.invoke(Native Method)
07-05 15:36:29.569 29406 29406 E Instrumentation:       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
07-05 15:36:29.569 29406 29406 E Instrumentation:       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
07-05 15:36:29.651   492   540 D SurfaceFlinger: duplicate layer name: changing com.facebook.katana/com.facebook.katana.gdp.ProxyAuthDialog to com.facebook.katana/com.facebook.katana.gdp.ProxyAuthDialog#1
07-05 15:36:29.697   492  1763 D SurfaceFlinger: duplicate layer name: changing Dim Layer for - Task=2317 to Dim Layer for - Task=2317#1
07-05 15:36:29.720   665   665 D QCOM PowerHAL: LAUNCH HINT: OFF
07-05 15:36:29.731   492   540 W SurfaceFlinger: Attempting to set client state on removed layer: Dim Layer for - Task=2317#0
07-05 15:36:29.731   492   540 W SurfaceFlinger: Attempting to destroy on removed layer: Dim Layer for - Task=2317#0

मैंने NATIVE_WITH_FALLBACK मोड का उपयोग देखा और WEB_ONLY को परीक्षण करने के लिए बदल दिया। जब भी मुझे ऊपर चित्रित मूल समस्या से अतीत मिलता है, यह एक और बनाता है। लॉगिन विवरण के लिए मुझसे पूछने के बजाय, यह निम्नलिखित दर्शाता है:

फिर से, पाठ है:

आपने पहले फेसबुक के साथ $ MY_APP में लॉग इन किया था। आप जारी रखना चाहेंगे?

यदि मैं जारी रखना चुनता हूं (रद्द करने के अलावा कोई अन्य विकल्प नहीं है), तो यह मेरे ऐप पर वापस चला जाता है, लेकिन फायरबेस मुझे ERROR_ACCOUNT_EXISTS_WITH_DIFFERENT_CREDENTIAL त्रुटि देता है, यह सुझाव देता है कि खाता पहले से ही किसी अन्य प्रदाता के साथ जुड़ा हुआ है। जब मैं फायरबेस कंसोल में जांच करता हूं, तो खाता एक फेसबुक के रूप में दिखाता है। तो ऐसा लगता है कि फेसबुक ऐप इंस्टॉल होने से फायरबेस को लगता है कि यह एक अलग सामाजिक प्रदाता या कुछ और है।

अंत में, और कुछ हद तक हताशा से बाहर, मैंने प्रमाणीकरण मोड को WEB_VIEW_ONLY स्विच करने का WEB_VIEW_ONLY । निश्चित रूप से, इसने मुझे बिल्कुल वैसा ही अनुभव दिखाया जैसा कि बिना फेसबुक को लॉग इन किए इंस्टॉल करने पर होता है। इसके अलावा, सब कुछ उम्मीद के मुताबिक काम किया।

मेरी समस्या यह है कि मुझे पूरी तरह से यकीन नहीं है कि इस सब के निहितार्थ क्या हैं (नोट: नीचे मेरा अपडेट देखें)। मुझे याद है कि मूल फेसबुक लॉगिन के बारे में कहीं भी पढ़ना वास्तव में अब कोई बात नहीं है (या शायद यह विपरीत था और इसका इस्तेमाल किया जाना चाहिए)। मूल रूप से, मैं बहुत उलझन में हूँ और वास्तव में निम्नलिखित प्रश्नों के उत्तर की सराहना करूंगा:

  • WEB_VIEW_ONLY का उपयोग करने के लिए एक स्वीकार्य बात है?
  • NATIVE_WITH_FALLBACK का उपयोग मेरी पोस्ट की शुरुआत में त्रुटि क्यों दिखाता है?
  • WEB_ONLY एक ही खाते को एक अलग प्रदाता के रूप में क्यों मानता है?
  • एसडीके इन सभी तरीकों से फेसबुक लॉगिन क्यों करता है? मैंने उनके बारे में एक सहज पसंद होने के बारे में सोचा, जिसका प्रमाणीकरण पर कोई प्रभाव नहीं पड़ा, लेकिन मुझे गलत लगा।

ध्यान दें कि सभी मामलों में मैं आधिकारिक डॉक्स का पालन कर रहा हूं, जिसमें नवीनतम एसडीके संस्करण का उपयोग करना शामिल है:

implementation 'com.facebook.android:facebook-login:[5,6)'

किसी भी सहायता के लिए धन्यवाद।

अद्यतन: मैंने अपने ऐप को WEB_VIEW_ONLY अपडेट किया और इसे फिर से सबमिट किया। फेसबुक ने अब मुझे बताया है:

आपका ऐप अब प्लेटफ़ॉर्म पॉलिसी 8.2 का उल्लंघन कर रहा है: फेसबुक लॉगिन को लागू करने वाले नेटिव आईओएस और एंड्रॉइड ऐप को लॉगिन के लिए हमारे आधिकारिक एसडीके का उपयोग करना चाहिए। कृपया सुनिश्चित करें कि आपका एप्लिकेशन लॉगिन के लिए हमारे एसडीके के सबसे हाल के संस्करण का उपयोग कर रहा है।

इसलिए मैं अभी एक चट्टान और एक कठिन जगह के बीच फंस गया हूं।


आपके लॉग के शीर्ष पर, यह कहता है
Key hash GtvUdcOKFRAE0RY0LIw5veCA+M8= does not match any stored key hashes.

जब आप रिलीज़ के लिए निर्माण करते हैं तो आप शायद गलत कीश का उपयोग कर रहे होते हैं। स्पष्ट रूप से यह समस्या तब होती है जब आप इस लिंक में चर्चा के रूप में गलत कीश का उपयोग करते हैं।

जैसे कि यह WEB मोड पर क्यों काम करता है, इसकी वजह से कीश को SDK द्वारा चेक किया जाता है और जब से आप इसके बजाय वेबपेज पर जाते हैं, आपको त्रुटि नहीं मिलती है। आप डिबग मोड पर चल रहे हैं और डिबग मोड कुंजी हैश सही हो सकता है जो आपके डिवाइस पर काम करने का एक उत्तर हो सकता है।


इस समस्या के विवरण की व्याख्या करता है:

07-05 15: 36: 28.946 29406 4941 W fb4a.BlueServiceQueue: सेवा के दौरान अपवाद 07-05 15: 36: 28.946 29406 4941 W fb4a.BlueServiceQueue: X.2LH: [कोड] 404 [संदेश]: कुंजी हैश GtvUUdcUQ = किसी भी संग्रहीत कुंजी हैश से मेल नहीं खाता। (४०४) [अतिरिक्त]: अशक्त

याद रखें कि कुंजी हैश जिसे आप अपने फेसबुक एप्लिकेशन में कॉन्फ़िगर करते हैं, काइस्टोर (प्रमाण पत्र) से संबंधित है जिसके साथ आपका आवेदन हस्ताक्षरित है।

आपको कुंजी हैश का उपयोग करना चाहिए जिसके साथ आप अपने आवेदन पर हस्ताक्षर करते हैं, यदि आप इसे नहीं जानते हैं, तो मेरा सुझाव है कि आप इसे फिर से अपने कीस्टॉर से प्राप्त करें:

https://developers.facebook.com/docs/android/getting-started/

एसडीके इन सभी तरीकों से फेसबुक लॉगिन क्यों करता है? मैंने उनके बारे में एक सहज पसंद होने के बारे में सोचा, जिसका प्रमाणीकरण पर कोई प्रभाव नहीं पड़ा, लेकिन मुझे गलत लगा।

वेब में आपको समस्या नहीं है, लेकिन यदि आप किसी एप्लिकेशन के अंदर हैं, तो आपको एप्लिकेशन के उपयोग को अधिकृत करने की आवश्यकता है, और एंड्रॉइड ऐप में इस कार्यान्वयन के लिए बहुत महत्वपूर्ण है , आपको फेसबुक एसडीके का उपयोग करने की आवश्यकता है , और इस मामले में आपको ज़रूरत है कुंजी हैश प्रमाणपत्र प्राप्त करने के लिए जिसके साथ आपका आवेदन हस्ताक्षरित है।


अपनी समस्या को हल करने के लिए, डेवलपर Accout > Facebook App > सेटिंग अब लॉगिन करें, एप्लिकेशन hash को key hashes फ़ील्ड में पेस्ट करें और फिर कॉन्फ़िगरेशन को सहेजें। अपना एप्लिकेशन चलाएं और आप त्रुटि को दूर कर पाएंगे।

आपको एप्लिकेशन सेटिंग के लिए स्क्रीनशॉट उपयोगी मिल सकता है।





facebook-authentication