Ключ хэш не супадае, а facebook Увайсці ў андроіды

Маё прыкладанне выкарыстоўвае просты facebook лагін. Я ўвайшоў у keyhash ў маім прыкладанне прыборнай панэлі, key_hash секцыі, і я змог паспяхова ўвайсці ў сістэму. Цяпер я апублікаваў прыкладанне і паспрабаваў увайсці, але з'яўляецца паведамленне пра памылку на WebView, кажучы, што

"Invalid android_key parameter. The key rX6qeRitkFCWui3de74rxB_qc1s does not match any allowed key. Configure your app key hashes at http://developers.facebook.com/apps/". 

На самай справе rX6qeRitkFCWui3de74rxB_qc1s ня мой хэш-ключа, які я маю на роднай дадатку. Дзе гэта прыходзіць? У любым выпадку, я ўвайшоў у гэтым keyhash таксама ў родным дадатку, але атрымаць тое ж паведамленне пра памылку і не магу ўвайсці ў сістэме па-ранейшаму. Дзе am'i няправільна? Калі ласка, дапамажы мне.

16
вам трэба стварыць яго. Прасачыце, як @Indian прапанаваў вам у адказ. Яна будзе працаваць. Я ўпэўнены. Пасля таго, як жа вераю я сутыкнуўся.
дададзена аўтар TheLittleNaruto, крыніца
@AshutoshSalodkar: Паспрабуйце згенераваць новы keyhash выкарыстоўваючы файл сховішча вашага прыкладання, які выкарыстоўваецца для падпісання апублікаванага прыкладання. Гэтая праблема можа быць выклікана шляхам прадастаўлення keyhash стваранага отладок сховішчам ключоў, які будзе працаваць толькі з непадпісаным APK файламі.
дададзена аўтар Santhosh, крыніца
Спрабавалі Ці вы пакласці ключ хэша з паведамлення пра памылку ў наладах прыкладання? Паведамленне пра памылку было распрацавана, каб вы маглі проста скапіяваць/ўставіць ключ хэша ў налады.
дададзена аўтар Ming Li, крыніца
@SANTHOSH зрабіў вы атрымалі адказ
дададзена аўтар Ashutosh Salodkar, крыніца
Я атрымліваю паведамленне пра памылку для гэтай ключавой хэш 63y9 ******** ****** + DK2jU = так што я дадаў яго ў ключавой хэш майго прыкладання, але ўсё яшчэ атрымліваю тую ж памылку
дададзена аўтар Ashutosh Salodkar, крыніца
Я вырашыў гэтую праблему тут! Тут understanded крута! [ stackoverflow.com/questions/5306009/…
дададзена аўтар Madi, крыніца

9 адказы

Вы можаце стварыць хэш-ключ праз кадавання, вы проста зрабіць адну рэч. Ўстаўце гэты код у галоўным класе (першы клас), а затым запусціць прыкладанне і праверыць LogCat дзе вы знойдзеце хэш-ключ.

Яшчэ адна рэч, замяніць гэтае імя пакета «com.example.creeper» з імем пакета:

try{
        PackageInfo info = getPackageManager().getPackageInfo(
                "com.example.creeper", 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) {

}
24
дададзена
як можа ў сказаць, яго праца для мяне, Маниш ўважліва прачытаць пытанне, то каментарый ......
дададзена аўтар Rishi Gautam, крыніца
ВЫ ПАВІННЫ АТРЫМАЦЬ Хэш з асноўнага класа (першы клас)
дададзена аўтар formuser66, крыніца
гэта будзе генераваць адладкавую keyhash па змаўчанні, але не для вытворчасці. для вытворчасці вам трэба стварыць keyhash выкарыстоўваючы свой уласны сертыфікат. як і тут, stackoverflow.com/questions/20506658/…
дададзена аўтар manish, крыніца
@RishiGautam: Мой першы клас SplashScreen класа, і я з дапамогай кнопкі FB ў класе LoginActivity дык дзе ж я дакладна ўставіць гэты код у SplashScreen або класе Увайсці актыўнасць. Акрамя таго, у кансолі распрацоўніка Facebook я дадаў LoginActivity як маё імя класа. Дык які з іх мой першы клас дакладна. Thanx
дададзена аўтар Sagar Devanga, крыніца
Найбольш важная частка гэтага пытання, дзе ключавой хэш «rX6qeRitkFCWui3de74rxB_qc1s» прыбывае з. У мяне аналагічная праблема, калі Facebook скардзіцца, што хэш не адпавядае ні захаваных ключоў Хэшаў. Хэш-ключ адлюстроўваецца на дысплеі не з'явіцца НІДЗЕ ў маім кодзе. Разуменне таго, дзе гэты чароўны ключ хэш прыходзіць ад з'яўляецца ключом да разумення працэсу. Гэты адказ не можа асвятліць працэс.
дададзена аўтар Rjak, крыніца

Калі вы сутыкнуліся з гэтай праблемай, то паставіць гэты ключ у вашай developer.facebook.com

enter image description here

Затым пераканайцеся, што ваша прыкладанне <�моцны> жыць на developer.facebook.com

This green circle is indicating the app is live enter image description here

Калі няма, то выканайце гэтыя два кроку для зрабіць ваша прыкладанне ў прамым эфіры

Step 1 Go to your application -> setting and add Contact Email then apply save Changes

Setp 2 Then goto Status&Review option and make sure this toggle is Yes i added a screen shot

enter image description here

10
дададзена
Я не магу дадаць гэты ключ. Не ведаю прычыну. Хоць, 2 ключа ўжо існуе там.
дададзена аўтар NarendraJi, крыніца
@PrashantSaini Дзякуй. Самыя нізкія L даўжэй і танчэй, капітал я карацей і тоўшчы
дададзена аўтар vzhen, крыніца
Высокае Рашэнне людзі! дзякуй
дададзена аўтар GreenRobo, крыніца
@vzhen гэта праблема, што большасць людзей не зможа распазнаць такую ​​розніцу ў памерах нанаметра знакаў. так што заўсёды лепш трымаць яго ў заўвазе і паспрабаваць абодва комба, як адзін, вядома, працаваць.
дададзена аўтар Prashant Saini, крыніца
Проста просты каментар, які можа вырашыць праблемы аднаго ... вельмі вельмі асцярожным пры ручным уводзе ключа-хэш, выкарыстоўваючы гэты адказ. Алфавіты як L або I (вачэй) сапраўды збівае з толку, калі выкарыстоўваецца ў верхнім рэгістры і ніжнім рэгістры .. гэта здарылася са мной сёння і гэты адказ заўсёды працуе, але патрабуе ад рэгістру увагі.
дададзена аўтар Prashant Saini, крыніца
Вы карыстаецеся падпісаную APK ??
дададзена аўтар Arpit Patel, крыніца
я не магу атрымаць, што вы хочаце сказаць ??
дададзена аўтар Arpit Patel, крыніца
ды з подпісам шляху APK сховішчы ключоў і пароль
дададзена аўтар Harsha, крыніца
яшчэ паказваючы ж дыялогавае акно не адпавядае
дададзена аўтар Harsha, крыніца
Ты мой герой @PrashantSaini
дададзена аўтар sumit mehra, крыніца

Try generating new keyhash using your app's keystore file used for signing the published app. This problem may be caused by providing the keyhash generated by your debug keystore which will only work with unsigned apk files. please refer the step 5 of following link to understand how to generate a keyhash https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/

і абнавіць тое ж самае з старонцы налад прыкладання ў Facebook.

Таксама праверце правільнасць ваша імя пакета і імя класа.

5
дададзена
Так. Я даў тое ж самае.
дададзена аўтар Santhosh, крыніца
Так. Тое ж самае паведамленне пра памылку
дададзена аўтар Santhosh, крыніца
Сфарміраваны keyhash з сховішчы ключоў, якія выкарыстоўваюцца для подпісы прыкладання. І дадаў у Fb наладах прыкладання. Але не ў стане увайсці яшчэ.
дададзена аўтар Santhosh, крыніца
Першае мерапрыемства ў маім дадатку з'яўляецца HomeActivity, і ў мяне ёсць кнопка FBLogin ў фрагменце пад назвай NewsListFragment і бляшанка актыўнасць SettingsActivity. Цяпер тое, што я павінен ўвесці ў якасці імя класа ў наладах прыкладання FB?
дададзена аўтар Santhosh, крыніца
паспрабуйце гэтую спасылку Калі ласка, паспрабуйце гэта спасылка. Можа быць, гэта дапаможа
дададзена аўтар Mahesh, крыніца
Хіба вы далі той жа псеўданім, як дадзена ў файле сховішчы ключоў?
дададзена аўтар Mahesh, крыніца
Вы атрымліваеце тую ж памылку? Хіба вы далі адзін і той жа псеўданім, што, як паказана ў файле сховішчы ключоў?
дададзена аўтар Mahesh, крыніца
паспрабуйце гэта для генерацыі keyhash: Keytool -exportcert -alias -keystore | OpenSSL sha1 -binary | Open SSL base64
дададзена аўтар Mahesh, крыніца
Вы спрабавалі дадаваць keyhash згенераванага з дапамогай сховішчы ключоў выкарыстоўваюцца для падпісання прыкладання? Я думаю, што будзе рабіць яго працу. Ва ўсякім разе дадаць дзеянне, у якім вы ініцыявальны ГФ лагін.
дададзена аўтар Mahesh, крыніца

Выкарыстанне Debug сховішчы ключоў, уключаючы debug.keystore сапраўднага андроіда ў .android тэчкі генерыравалі дзіўныя праблемы; Увайсці з дапамогай facebook увайсці кнопку на андроіда прыкладанне будзе адбывацца зусім па жаданні ў першы раз. Але калі я калі-небудзь Запісаны, і спрабаваў увайсці ў сістэму, было б кінуць памылку кажучы: Гэта прыкладанне не мае АНДРОІД ключавых хэшы настроеных. Калі ласка, перайдзіце на HTTP://....

Стварэнне сховішчы ключоў з дапамогай каманды Keytool (Keytool -genkey -v -keystore майго рэлізу-key.keystore -alias alias_name -keyalg RSA -sigalg SHA1withRSA -keysize 2048 -validity 10000) і ўвод сховішчы ключоў у маіх праектах верхняй бацькоўскай тэчкі і зрабіць пасля ўступлення ў праектах build.gradle файл вырашаецца пытанне:

 signingConfigs {
        release {
            storeFile file("my-release-key.keystore")
            storePassword "passpass"
            keyAlias "alias_name"
            keyPassword "passpass"
        }    }

Звярніце ўвагу, што вы заўсёды выкарыстоўваць наступны метад у OnCreate() ваш андроід дзейнасці, каб атрымаць значэнне ключа хэша (для рэгістрацыі ў developer.facebook.com сайце вашага прыкладання), а не з дапамогай каманднага радка (Keytool -exportcert -alias -keystore | OpenSSL sha1 -binary | OpenSSL base64) для генерацыі хэш-значэнне ў якасці каманднага радка ў некаторых абсаджаны можа пакласці па-за няправільны ключ хэша:

    public  void showHashKey(Context context) {
        try {
            PackageInfo info = context.getPackageManager().getPackageInfo("com.superreceptionist",
                    PackageManager.GET_SIGNATURES);
            for (android.content.pm.Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());

                 String sign=Base64.encodeToString(md.digest(), Base64.DEFAULT);
                Log.e("KeyHash:", sign);
               // Toast.makeText(getApplicationContext(),sign,     Toast.LENGTH_LONG).show();
            }
            Log.d("KeyHash:", "****------------***");
        } catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
        } catch (NoSuchAlgorithmException e) {
e.printStackTrace();
        }
    }
3
дададзена

Вам трэба да keyhash ад вашага debug.keystore або калі вы падпісалі яго з ключом рэліз, чым з гэтым. Пераканайцеся, што псеўданім імя Вашага таксама правільна. Гэта аказвае ўплыў на вашу keyhash.

Check this out: How to create a Facebook key hash?

2
дададзена

Напрыклад, ключ, прадстаўлены ў памылкі «rX6qeRitkFCWui3de74rxB_qc1s» , то спіс хэш-кода ў Facebook, вы спрабуеце і паставіць гэты код у канцы канца «=» атрыманне rX6qeRitkFCWui3de74rxB_qc1s = і паглядзець, калі ён працаваў.

2
дададзена

Вось # версія C на карысць тых, хто спрабуе атрымаць ўзор Xamarin працаваць.

    public  void showHashKey(Context context) 
    {
        try {
            PackageInfo info = context.PackageManager.GetPackageInfo("com.facebook.samples.hellofacebook", PackageInfoFlags.Signatures);
            foreach (Android.Content.PM.Signature signature in info.Signatures) {
                MessageDigest md = MessageDigest.GetInstance("SHA");
                md.Update(signature.ToByteArray());

                var sign = Base64.EncodeToString(md.Digest(), Base64Flags.Default);
                Log.Info("KeyHash:", sign);
            }
            Log..Info("KeyHash:", "****------------***");
        } catch (PackageManager.NameNotFoundException e) {
            e.PrintStackTrace();
        } catch (NoSuchAlgorithmException e) {
            e.PrintStackTrace();
        }
    }
1
дададзена

Паспрабуйце згенераваць новы ключ хэша і рэдагаваць яго ў facebook распрацоўшчыкаў і зарэгістраваць дадатак з новым ключом хэша зноў.

1
дададзена

Для мяне, калі я запускаў каманду Keytool і гэта заахвоціла мяне пароль, я інтэрпрэтаваў гэта значыць, што мне трэба выбраць пароль для хэш. На самай справе, вы павінны даць ім пароль для сховішча ключоў (месца, у якім захоўваецца хэш). Самае смешнае (не смешна, «ха-ха»), ён будзе прымаць любы пароль і выхад хэш для вас. Гэта выклікала мой хэш не супадае. На шчасце, я захоўваць свой пароль у OS X брелка даўно, так што я знайшоў, што гэта на самай справе. Я паспрабаваў правільны пароль і атрымаў іншы хэш, які працаваў. Звярніце ўвагу, што пароль сховішчы ключоў па змаўчанні Android , таму паспрабуйце, што гэта магло б быць тое, што вы зніклі без вестак.

Я сапраўды думаю, што няправільны пароль павінен адмовіцца ад вас, а не выводзіць хэш, мне цікава, калі гэта памылка - калі гэта так, калі ласка, пакіньце спасылку справаздачу пра памылку ў каментарах.

0
дададзена