অবৈধ কী হ্যাশ সহ অ্যান্ড্রয়েড ফেসবুক একীকরণ


194

আমার একটি অ্যাপে আমার ফেসবুক থেকে ডেটা নেওয়া দরকার ... আমি এটি করছি:

আমি অ্যাপ আইডি তৈরি করেছি । এটি সফলভাবে লগ ইন করে তবে লগ আউট করার পরে, আমি লগ ইন করি এবং তারপরে এটি আমাকে দেয়:

ফেসবুক অবৈধ কী হ্যাশ এর স্ক্রিনশট

আমি কি ভুল করছি? আমি ফেসবুক এসডিকে ব্যবহার করছি ... আমি আমার ফোনে ফেসবুক ইনস্টল করেছি ... এটি একটি এমুলেটরের মধ্যে ভাল চলছে, তবে এতে ইনবিল্ট ফেসবুক অ্যাপ্লিকেশন ইনস্টল করা নেই।

এটি আমার কোড:

if (FB_APP_ID == null) {
    Builder alertBuilder = new Builder(this);
    alertBuilder.setTitle("Warning");
    alertBuilder.setMessage("A Facebook Applicaton ID must be " +
                            "specified before running this example: see App.java");
    alertBuilder.create().show();
}

// Initialize the dispatcher
Dispatcher dispatcher = new Dispatcher(this);
dispatcher.addHandler("login", LoginHandler.class);
dispatcher.addHandler("stream", StreamHandler.class);
dispatcher.addHandler("logout", LogoutHandler.class);

// If a session already exists, render the stream page
// immediately. Otherwise, render the login page.
Session session = Session.restore(this);
if (session != null) {
    dispatcher.runHandler("stream");
}
else {
    dispatcher.runHandler("login");
}

12
লগআউট শেষ হওয়ার পরে যদি আমি লগ ইন করি তবে এটি প্রথমবারের মতো কাজ করছে না এটি লিগিনের জন্য ঠিক আছে
অ্যান্ড্রয়েড

1
হ্যাঁ আমি .. ব্যবহার করে তৈরি করেছি try প্যাকেজআইফোন তথ্য = getPackageManager ()। getPackageInfo ("com.facebook.sample.hellofacebook", প্যাকেজম্যানেজ। GET_SIGNATURES) ব্যবহার করে; (স্বাক্ষর স্বাক্ষর: তথ্য.সাইননাচারস) এর জন্য {ম্যাসেজডিজস্ট এমডি = ম্যাসেজডিজিট.জেটআইনস্ট্যান্স ("SHA"); md.update (signature.toByteArray ()); লগ.ডি ("কীহ্যাশ:", বেস64.encodeToString (md.digest (), বেস64.DEFAULT)); }
অ্যান্ড্রয়েড

1
আমি এখানে এই সমস্যা বপন! এখানে শীতল বোঝা গেছে! [ Stackoverflow.com/questions/5306009/… ] [1]
ম্যাডি

3
@ অ্যান্ড্রয়েড যদিও এটি পুরানো, তবে আমার এটি উল্লেখ করা উচিত। যখন কোনও ব্যবহারকারী লগআউট করে লগইন করে তখন এটি ঘটে না। আপনি যখন দ্বিতীয়বার ডিবাগ করবেন অর্থাৎ ডিবাগ করার সময় অ্যাপটি পুনরায় ইনস্টল করবেন তখন এটি ঘটে। সুতরাং, হ্যাশ পরিবর্তন হয়। স্বাক্ষরিত অ্যাপ্লিকেশনটির ক্ষেত্রে এটি ঘটে না (উত্পাদন প্রস্তুত)
নিলে বিশ্বকর্মা

1
আপনি যদি ফেসবুক অ্যাপটি আনইনস্টল করেন তবে আপনি কি একই ত্রুটি পেয়েছেন? আমি দুটি ফোন থেকে পরীক্ষা করেছি এবং এই ত্রুটি কেবল তখনই ঘটে যখন ফেসবুক অ্যাপটি ইনস্টল হয়।
জাইমে মন্টোয়া

উত্তর:


274

উত্পন্ন হ্যাশ কীটি ভুল। আপনি দুটি পদক্ষেপ ব্যবহার করে হ্যাশ কীটি পেতে পারেন।

একটি হ'ল কমান্ড প্রম্পটের মাধ্যমে। অন্য একটি কোডিংয়ের মাধ্যমে। কমান্ড প্রম্পটের মাধ্যমে হ্যাশ কী প্রথমবারের মতো কাজ করছে। আমি কারণ জানি না। আমারও একই সমস্যা হয়েছে। সুতরাং আমি প্রোগ্রামের মাধ্যমে এটি চেষ্টা করেছিলাম।

এই পদক্ষেপগুলি অনুসরণ করুন:

নিম্নলিখিত কোডটি আটকান oncreate()

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

উপরের কোডিংয়ে আপনার প্যাকেজের নামের সাথে "com.example.packagename" সংশোধন করুন ব্যর্থ না হয়ে (আপনি অ্যান্ড্রয়েড ম্যানিফেস্ট ফাইলটিতে আপনার প্যাকেজের নাম খুঁজে পেতে পারেন)।

আপনার অ্যাপ্লিকেশন চালান। যে ক্রিয়াকলাপটিতে আপনি উপরের কোডটি আটকে দিয়েছেন সেখানে যান। লগগেটি ফাইলে, "কীহ্যাশ" অনুসন্ধান করুন। আপনি একটি কী হ্যাশ পেতে পারেন। কী হ্যাশটি অনুলিপি করুন এবং ফেসবুক অ্যাপ্লিকেশন ড্যাশবোর্ড পৃষ্ঠায় যান। সেটিংসে যান এবং নীচের চিত্রের মতো বিশদটি প্রবেশ করান।

এখানে চিত্র বিবরণ লিখুন

উপরের পদক্ষেপটি শেষ হয়ে গেলে অ্যাপটি আবার চালু করুন। আপনি এখন ফেসবুকে লগ ইন করতে পারেন। কী হ্যাশ সম্পর্কে আরও তথ্যের জন্য, লিঙ্কটি চেক করুন

আপনি যদি সেটিংস পৃষ্ঠায় ভুল তথ্য যুক্ত করেন তবে এর অর্থ এটি কিছু ত্রুটি দেয়। সুতরাং সেখানে সঠিক তথ্য ব্যবহার করুন। এছাড়াও যদি জনসাধারণকে (আপনি ব্যতীত) আপনার অ্যাপ্লিকেশন ব্যবহার করতে হয় তবে আপনাকে অনুমতিটি সক্ষম করতে হবে (সেটিংসের পাশের "স্থিতি ও পর্যালোচনা" তে "হ্যাঁ" পরিবর্তন করুন)


20
এইভাবে, সম্ভবত আপনি ডিবাগ কীস্টোরের জন্য একটি কী হ্যাশ পেয়েছেন। এটি আপনার পক্ষে বিকাশ মোডে কাজ করে, আপনার উত্পাদন মোডের জন্য প্রয়োজনীয় কাজ করে না। কমপক্ষে, এটি আমার প্রোডাকশন অ্যাপ্লিকেশনটির জন্য কাজ করে না।
লিয়াগজুন

3
ধন্যবাদ আপনি আমার অনেক সময় সাশ্রয় করেছেন ... ফেসবুক অফিসিয়াল ডক এটি পড়া উচিত নয় এটি বুলশিট
DjP

আপনাকে অনেক ধন্যবাদ বন্ধু!
কিনজিপিঞ্জ

আরে এই কোডের সাহায্যে প্যাকেজআইনফো তথ্য = getPackageManager ()। GetPackageInfo ("com.example.packagename", প্যাকেজম্যানেজ। GET_SIGNATURES); (স্বাক্ষর স্বাক্ষর: তথ্য.সাইননাচারস) এর জন্য {ম্যাসেজডিজস্ট এমডি = ম্যাসেজডিজিট.জেটআইনস্ট্যান্স ("SHA"); md.update (signature.toByteArray ()); লগ.ডি ("কীহ্যাশ:", বেস64.encodeToString (md.digest (), বেস64.DEFAULT)); আমি যখন উইন্ডোজে সেন্টিমিডে কমান্ডটি চালিত করতাম তখন আমার হ্যাশ কীটি আলাদা ছিল এবং আমি এফবিতে যুক্ত করেছিলাম তবে একটি ভিন্ন হ্যাশ কী প্রেরণ করা হয়েছে
সাগর দেবঙ্গা

1
আমাকে অনেক সময় বাঁচিয়েছে। এখনও সেরা. কিহ্যাশটির জন্য ভার্বোজটি পরীক্ষা করুন এবং এটি ফেসবুক বিকাশকারীদের পৃষ্ঠায় অনুলিপি করুন এবং আটকান। ম্যানুয়ালি টাইপ করার ভুল করবেন না! এছাড়াও, বুঝতে পারছেন যে অ্যাপটি আনইনস্টল ও ইনস্টল করে প্রতিবার কীহ্যাশ পরিবর্তন হয় understand
সঞ্জীব

188

আপনি যদি গুগল প্লে অ্যাপ স্বাক্ষর ব্যবহার করছেন:

গুগল প্লে কনসোলে অ্যাপ্লিকেশন স্বাক্ষরকরণ বিভাগটি খুলুন এবং অ্যাপ সাইনিং শংসাপত্রের অধীনে SHA-1 হ্যাশ পান । তারপর এটি রূপান্তর করুন Base64- এই টুল দিয়ে উদাহরণস্বরূপ: হেক্সাডেসিমেল -> করুন Base64- স্ট্রিং ডিকোডার

কনসোল স্ক্রিনশট

বেস 64 স্ক্রিনশটে রূপান্তর করুন


14
স্যার! তুমি একজন জীবন রক্ষাকারী! অনেক ভালোবাসা, প্রচুর ভালোবাসা. আমি ফেসবুকের কনসোলে আমার স্থানীয় মুক্তির কীগুলি থেকে হ্যাশগুলি রাখার সময় আমি প্লে স্টোরের সাইন ইন ব্যবহার করছিলাম।
তাহা রুশাইন

4
আপনি আমার জীবন বাঁচান, আমি প্রতিক্রিয়া ব্যবহার করছি, প্লে স্টোর অ্যাপ্লিকেশন স্বাক্ষর সম্পর্কে
কোনও

7
ধন্যবাদ! এটি কাজ করে! আপনি এটির জন্য টার্মিনাল কমান্ডও ব্যবহার করতে পারেন: echo YOUR_SHA1_CERTIFICATE_COPIED_FROM_GOOGLE_PLAY | sed s/\://g | xxd -r -p | base64
ইউরি সেরেডিয়ুক

4
উত্পাদনের পরিবেশের জন্য এটি করা দরকার !!! থাম্বস আপ!
বাইকি

ঠিক আমি জানতে চেয়েছিলাম কি। আপনি অ্যাপটি আনইনস্টল করুন এবং ইনস্টল করুন প্রতিবারই হ্যাশকি ডিবাগ পরিবর্তন করে signed স্বাক্ষরিত এপিকে জন্য এটি সেরা সমাধান হতে পারে! আপনি পিপিএল জীবন সহজ করার জন্য ধন্যবাদ ধন্যবাদ!
সঞ্জীব

123

আপনি যদি এই সমস্যার মুখোমুখি হয়ে থাকেন তবে এই কীটি আপনার বিকাশকারী.ফেসবুক.কম এ দিন :

এখানে চিত্র বিবরণ লিখুন

তারপর আপনার অ্যাপ্লিকেশন নিশ্চিত লাইভ উপর developer.facebook.com

এই সবুজ চেনাশোনাটি অ্যাপটি সরাসরি দেখায়:

এখানে চিত্র বিবরণ লিখুন

যদি তা না হয় তবে আপনার অ্যাপটিকে লাইভ করার জন্য এই দুটি পদক্ষেপ অনুসরণ করুন:

ধাপ 1 আপনার আবেদন → যান সেটিংযোগ যোগাযোগের ইমেল এবং প্রয়োগ পরিবর্তনগুলি সংরক্ষণ করুন।

পদক্ষেপ 2 অ্যাপ পর্যালোচনা বিকল্পে যান এবং নিশ্চিত করুন যে এটি টগল হ্যাঁ । আমি একটি স্ক্রিনশট যুক্ত করেছি:

এখানে চিত্র বিবরণ লিখুন

নোট: আপনি hashkey অনুলিপি করতে চান তাহলে, BlueServiceQueue পরীক্ষা Logcat


5
ফোন থেকে সেই হ্যাশটি অনুলিপি করার কোনও সহজ উপায় আছে?
ড্যানিয়েল শ্যাটজ

4
@ ড্যানিয়েলশ্যাটজ এটি লগকটে প্রদর্শিত হবে। আমি চিঠি করে চিঠিটি অনুলিপি করার পরেই জানতে পেরেছি।
আলা এম।

4
@ ড্যানিয়েল শাটজ লগক্যাটটিতে ট্যাগ BlueServiceQueueখুঁজছেন
আলা এম

4
এই উত্তরটি আমার পক্ষে কাজ করেছিল। ম্যানুয়ালি হ্যাশ টাইপ করার কিছু প্রচেষ্টা করার পরে এটি আমাকে একই ত্রুটি দিয়েছে, সমস্যাটি ছিল, আমি ছোট কেস এল "এল" এর পরিবর্তে মূলধনটি "" আমি "টাইপ করি। এটি উপলব্ধি করার জন্য আমাকে কিছুটা সময় নিল।
মারকাস

1
এটি কাজ করছে তবে আমি ভাবছি যেখান থেকে এফবি এই হ্যাশ কীটি পাবে? কেউ অবাক হয় না? ত্রুটি হ্যাশ কী কাজ ভাল প্রদর্শন করা হয়, কিন্তু এমনকি all কমান্ড, অথবা Google App স্বাক্ষরের থেকে করুন Base64- করার SHA1 পেয়ে আমাকে কী এফবি ত্রুটি দেখানো দিয়েছেন ... কৌতুক করার জন্য ধন্যবাদ যাহাই হউক না কেন
Umar3x

82

আমি একই সমস্যা পেয়েছি। আমি নিশ্চিত ছিলাম এটি খুব ছোট দোষের কারণে এবং হ্যাঁ এটি ছিল!

আমি সমাধানটি খুঁজে পেয়েছি:

আমার কম্পিউটারে ডিবাগ হ্যাশ কী তৈরি করার সময় , আমি আমার সিস্টেমের পাসওয়ার্ড প্রবেশ করলাম। তবে পাসওয়ার্ডটি নিম্নলিখিত হওয়া উচিত -

কীস্টোর পাসওয়ার্ড লিখুন: "অ্যান্ড্রয়েড"। আমার ক্ষেত্রে এটিই ছিল একমাত্র সমস্যা।

----- ডিবাগ কী হ্যাশ উত্পন্ন করার জন্য , এই আদেশটি ব্যবহার করুন -

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

কীস্টোর পাসওয়ার্ড প্রবেশ করান: 'অ্যান্ড্রয়েড'

----- রিলিজ কী হ্যাশ তৈরি করতে , এই আদেশটি ব্যবহার করুন -

keytool -exportcert -alias "alias of keystore" -keystore "Your path to the keystore when signing app" | openssl sha1 -binary | openssl base64

এই কমান্ডটি কার্যকর করার পরে আপনার কীস্টোর পাসওয়ার্ড সরবরাহ করুন।


5
পাসওয়ার্ডটি আমার জন্য কাজ করে "অ্যান্ড্রয়েড" ব্যবহার করা। এই বিস্ময়কর।
অ্যাডবি

3
হ্যাশ কী তৈরি করার সময় এই "অ্যান্ড্রয়েড" কে একটি পাসওয়ার্ড হিসাবে ব্যবহার করুন।
আকাশ বিসারিয়ার

2
উইন্ডোজ মেশিনে, নিশ্চিত করুন যে পাথ ভেরিয়েবলটি ওপেনএসএল-বিন এবং জাভা .. \ বিন ফোল্ডারগুলির জন্য সঠিকভাবে সেট করা আছে। ফেসবুক থেকে আদেশগুলি ব্যবহার করতে সক্ষম হতে হোমপ্যাট ভেরিয়েবল সেট করুন।
কাওয়াইএক্সএক্স

1
এটি কাজ করার জন্য কমপক্ষে ম্যাকের জন্য আমাকে জাভা জেডিকে ইনস্টল করতে হয়েছিল। অন্যথায় উপরের ডিবাগ কমান্ডটি এখনও একটি হ্যাশ জেনারেট করে, তবে হ্যাশ কাজ করে না এবং আপনাকে একটি পাসওয়ার্ডের জন্য অনুরোধ করা হবে না। জেডিকে ইনস্টল করার সাথে এটি কবজির মতো কাজ করেছে।
লেজোনল

1
এই উত্তরটি সঠিক উত্তর দেওয়া উচিত
ইভান এনগো

20

আমি একই সমস্যা অভিজ্ঞতা। আমি এই অদ্ভুত আচরণের সম্ভাব্য কারণগুলি নিয়ে একটি সংক্ষিপ্ত গবেষণা করেছি এবং আমি নিম্নলিখিতগুলি পেয়েছি:

  • একটি নতুন ফেসবুক অ্যাপ্লিকেশনটির প্রথম সম্পাদনার সময়, আপনি কোনও কী-হ্যাশ উল্লেখ না করলেও এটি সংযোগ / লগইনকে অনুমতি দেবে

  • আমার জন্য, ফেসবুক প্রদত্ত টিউটোরিয়ালটি সঠিক কী হ্যাশ তৈরি করে নি, কারণ এটি ভুল কনফিগারেশন দিয়েছিল । কার্যকর করার সময়:

    keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl
    base64

নিশ্চিত হয়ে নিন যে আপনি সমস্ত বৈশিষ্ট্য - HOMEPATHকীস্টোরের অস্তিত্ব ইত্যাদি পরীক্ষা করেছেন। সম্ভবত আপনাকে পাসওয়ার্ডও দিতে হবে।

  • যথাযথ কনফিগারেশনটি যা তৈরি করেছিল তা হ'ল @ মাহেন্দ্রন দ্বারা প্রস্তাবিত সমাধান

  • এছাড়াও, আপনি যদি মূলত পোস্ট করা ত্রুটিটি দেখতে পান ( http://i.stack.imgur.com/58q3v.png ), সম্ভবত পর্দায় আপনি কী কী হ্যাশটি দেখছেন তা হ'ল আপনার আসল। অন্য কিছু যদি না কাজ করে তবে এটি ফেসবুকে ইনপুট করার চেষ্টা করুন।

আমি এই সমস্ত ফলাফল পেয়েছি: উইন্ডোজ 7 64-বিট সংস্করণ, অ্যান্ড্রয়েড স্টুডিও 1.2.2, জেডিকে 7।


2
লিনাক্স সংস্করণ: `কীটল-এক্সপোর্টসর্ট -আলিয়াস অ্যান্ড্রয়েডবুগি-কিস্টোর $ হোম / .অ্যান্ড্রয়েড / ডিবাগ.কিস্টোর | ওপেনসএল sha1-বাইনারি | ওপেনসেল
বেস

1
ডিভাইসের স্ক্রিনে ফেসবুকের দ্বারা প্রদর্শিত যা কেবল ইনপুট করুন, এটি কাজ করা উচিত। @ মার্টিন
রাল্ফগ্যাব

14

অ্যান্ড্রয়েডের জন্য ফেসবুক লগইন অনুসারে , আপনাকে অবশ্যই হ্যাশ মানটি সরবরাহ করতে হবে। এটি পাওয়ার জন্য, আপনার অ্যাপ্লিকেশনটিতে স্বাক্ষর করতে আপনার কী ব্যবহার করতে হবে ।

keytool \
    -exportcert \
    -alias YourKeyAlias \
    -storepass YourStoreKeyPassword \
    -keystore PathToYourKeyStoreFile | openssl sha1 -binary | openssl base64

1
কেবল একটি মন্তব্য যুক্ত করতে চান, আপনার প্রোডাকশন কীস্টোরটি ব্যবহার করুন।
লিয়ানজুন

2
@ লিয়াজজুন আসলে আপনার সমস্ত কী ব্যবহার করা উচিত কারণ অন্যথায় আপনি ডিবাগ পরিবেশে ফেসবুক লগইন পরীক্ষা করতে পারবেন না।
পাইজুসন

2
@ পিয়াস, হ্যাঁ, আমি আসলে উভয় কী ব্যবহার করি। আমার এটা পরিষ্কারভাবে বলা উচিত ছিল।
লিয়াগজুন

আমি এই কমান্ডটির জন্য একটি ত্রুটি পেয়েছি (জাভা রানটাইম উপস্থিত নেই, ইনস্টলের অনুরোধ করছে)) তবে এখনও একটি কী পেয়ে যাব, তবে এটি অবৈধ and
ক্রিস্টি বালু

8

আপনাকে অবশ্যই দুটি কী হ্যাশ তৈরি করতে হবে, একটি ডিবাগের জন্য এবং একটি মুক্তির জন্য।

জন্য ডিবাগ কী হ্যাশ:

ওএস এক্সে, চালান:

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

উইন্ডোজে, চালান:

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl
base64

ডিবাগ কী হ্যাশ উত্স

জন্য রিলিজ কী হ্যাশ:

ওএস এক্স-এ, চালান ( <>আপনার মানগুলির মধ্যে যা রয়েছে তা প্রতিস্থাপন করুন) :

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

উইন্ডোজে, ব্যবহার করুন ( <>আপনার মানগুলির মধ্যে যা রয়েছে তা প্রতিস্থাপন করুন) :

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

রিলিজ কী হ্যাশ উত্স


আমি এই কমান্ডটির জন্য একটি ত্রুটি পেয়েছি (জাভা রানটাইম উপস্থিত নেই, ইনস্টলের অনুরোধ করছে)) তবে এখনও একটি কীও পেয়ে যাব, তবে এটি অবৈধ এবং এটির কাজটি চালানোর জন্য আমি লগক্যাট থেকে কেবল পেস্টটি অনুলিপি করছি
ক্রিসিটি ব্লু

সম্ভবত আপনি কমান্ড লাইনে আপনার জাভা এবং কীটোলের PATH সেট করেন নি? @ ক্রিস্টিবাউলু
এমবিএইচ

7

আমি পূর্ববর্তী সমস্ত উত্তর চেষ্টা করেছিলাম এবং কিছুই আমার ক্লায়েন্টদের সাথে আমার কেসকে সহায়তা করে না!

তারপরে আমার ক্লায়েন্টের মনে পড়ল তিনি তার ডিভাইসে ফেসবুক অ্যাপ ইনস্টল করেছেন। তিনি এটি অপসারণ করার পরে। লগইন নিখুঁতভাবে কাজ করে।

হ্যাশকিটি পরিবর্তন করা হয়েছিল এবং আমি ফেসবুক বিকাশকারী কনসোল-এ পুরানো হ্যাশ কীগুলি ত্রুটি থেকে (কীভাবে উপরে প্রস্তাবিত হিসাবে) দিয়ে প্রতিস্থাপন করেছি এবং এটি কার্যকর!

ফেসবুক অ্যাপ্লিকেশন নিজেই এটির সমস্যা হতে পারে, সুতরাং আপনি এটি ইনস্টল করা ফেসবুক অ্যাপ্লিকেশন সহ কোনও ডিভাইসে এবং ফেসবুক অ্যাপ্লিকেশন ইনস্টল না করে এমন কোনও ডিভাইসে এবং উভয় ক্ষেত্রেই পরিচালনা করতে পারবেন তা ভালভাবে আবিষ্কার করুন ...


হ্যাঁ একই এখানে আমি ডিভাইসে ফেসবুক অ্যাপ্লিকেশন ইনস্টল করার পরে এই ত্রুটি পেয়েছি। সুতরাং বর্তমানে আমি ফেসবুক দেব সেটিংসে 2 হ্যাশ কী রাখি।
স্টকডওভারফ্লো

3
তোমার সাথে আমারও একই অবস্থা। আমাকে যে জিনিসটি সাহায্য করেছিল তা হ'ল আপনার এফবি পৃষ্ঠায় - সেটিংস - অ্যাপ্লিকেশন - তালিকা থেকে অ্যাপটিকে সরিয়ে দিন। হ্যাশ কী পরিবর্তন করুন এবং fb অ্যাপ এবং আপনার অ্যাপ্লিকেশনটি পুনরায় ইনস্টল করুন। এবং এখন এটি কাজ করে ...
anna_manzhula

4

এইভাবে আমি এই সমস্যাটি সমাধান করেছি:

প্রথমে আপনাকে SHA-1 মান পেতে হবে। তার জন্য দুটি উপায় আছে।

অ্যান্ড্রয়েড স্টুডিওতে SHA-1 মান পেতে।

  1. গ্রেডল ক্লিক করুন
  2. সাইন ইন রিপোর্ট ক্লিক করুন
  3. SHA-1 মানটি অনুলিপি করুন

অথবা

কীস্টোর ফাইল থেকে SHA-1 মান পেতে ।

keytool -list -v -keystore keystore_file_name.jks -alias key0

আপনার ক্লিপবোর্ডে SHA-1 মানটি এটির মতো অনুলিপি করুন :

CD:A1:EA:A3:5C:5C:68:FB:FA:0A:6B:E5:5A:72:64:DD:26:8D:44:84

এবং আপনার এসএএচএ -1 মানকে বেস 64 এ রূপান্তর করতে হেক্সাডেসিমাল -> বেস 64 স্ট্রিং ডিকোডারটি খুলুন ।

ফেসবুকের এটাই দরকার।

উত্পন্ন হ্যাশ পান "******************** =" এবং কী হ্যাশটি ফেসবুক অ্যাপ্লিকেশনটিতে অনুলিপি করুন।


3

আমি একই সমস্যা ছিল। প্রথমে লগ ইন করুন, ঠিক আছে, তবে তারপরে একটি অবৈধ কী হ্যাশ।

ফেসবুক এসডিকে ফর ইউনিটির ভুল কী হ্যাশ পেয়েছে। এটি "সি: \ ব্যবহারকারীগণ your" আপনার ব্যবহারকারী ".এন্ড্রয়েড \ ডিবাগ.কিস্টোর" থেকে কীটি পেয়েছে এবং একটি নিখুঁত বিশ্বে এটি আপনার প্রকল্পে আপনি যে কী-স্টোরটি তৈরি করেছেন তা থেকে পাওয়া উচিত। এই কারণেই এটি আপনাকে বলছে যে কী হ্যাশটি নিবন্ধভুক্ত নয়।

ম্যাডির পরামর্শ অনুসারে , সঠিক কীটি খুঁজতে আপনি এই লিঙ্কের পদক্ষেপগুলি অনুসরণ করতে পারেন । আপনার প্রকল্পের ভিতরে কীস্টোরগুলিতে কেবল সেগুলি নির্দিষ্ট করা নিশ্চিত করুন। অন্যথায় আপনি সঠিক কীটি পাবেন না।


3

নীচের কোডটি আপনাকে ফেসবুকের জন্য হ্যাশ দেবে, তবে প্রকাশের প্রার্থী হ্যাশ পেতে আপনাকে এই পদক্ষেপগুলি অনুসরণ করতে হবে।

  1. আপনার মূল ক্রিয়াকলাপে এই কোডটি অনুলিপি করুন এবং আটকান

    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                               "com.example.packagename",
                               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) {
    }
  2. একটি স্বাক্ষরিত APK ফাইল তৈরি করুন।

  3. আপনার ফোনটি একটি ল্যাপটপে সংযুক্ত করুন এবং এটি সংযুক্ত রয়েছেন তা নিশ্চিত করুন।
  4. আপনার ফোনে ম্যানুয়ালি রিলিজের এপিএকে সরিয়ে আপনার ফোনে APK ফাইল ইনস্টল করুন এবং চালান।
  5. এখন অ্যান্ড্রয়েড লগগেটে দেখুন (কী হ্যাশ ফিল্টার ব্যবহার করুন )। ফেসবুকের জন্য আপনার রিলিজ হ্যাশ কীটি দেখতে হবে। কেবল এটি আপনার অনুলিপি করুন এবং আটকান https://developers.facebook.com/apps। এটি সেটিংসের অধীনে।
  6. এখন আপনি অ্যাপটি পরীক্ষা করতে পারেন এটি পুরোপুরি ভালভাবে কাজ করা উচিত।

নোট কোডটি কেবলমাত্র যদি আপনি স্বাক্ষরিত এপিপি উত্পন্ন করেন তবেই কাজ করে। অন্যথায় এটি আপনাকে কেবল ডিবাগ
এপিকে

হাই, আমি যখন ফেসবুক অ্যাপটিতে জেনারেট হ্যাশকি দিয়েছি তা কার্যকর হয়ে যায় তবে যখন অন্য ডিভাইসে চালানোর চেষ্টা করা হয় তখন এটি আবার 'ইনভালিড হ্যাশ কী' দেখায় যে আমি কীভাবে ফেসবুকের জন্য সমস্ত ডিভাইসে কাজের জন্য হ্যাশ কী সেট করতে পারি।
দীপক

2

দীর্ঘ গবেষণার পরে, আমরা একটি সমাধান পেয়েছি।

আমাদের হিসাবে অনুমতিগুলি সেট করা ছিল:

loginButton.setReadPermissions(public_profile email);

এটি প্রথমবারের জন্য কাজ করেছিল, কিন্তু আমরা যখন ফেসবুকে পুনরায় লগইন করেছি, এটিতে অবৈধ হ্যাশ ত্রুটি ঘটেছে

সহজ সমাধানটি ছিল উপরের লাইনটি এতে পরিবর্তন করুন:

loginButton.setReadPermissions(Arrays.asList("public_profile", "email"));

এবং এটি আনন্দের মতো কাজ করেছিল!

ফেসবুকের বিভ্রান্তিকর অবৈধ হ্যাশ কী ত্রুটির পরিবর্তে সঠিক ব্যতিক্রমটি ফিরিয়ে নেওয়া উচিত।


আমারও একই সমস্যা আছে I আমি আপনার সমাধানটি চেষ্টা করেছি কিন্তু এখনও আমার সমস্যাটি সমাধান করতে পারছি না user
ব্যবহারকারীর

2

অনেক পরীক্ষার পরে আমি এর সমাধানে হোঁচট খেয়েছি। আমি ফেসবুক বিকাশকারী কনসোলে উভয় ডিবাগ এবং রিলিজ কীগুলি উত্পন্ন এবং যুক্ত করেছি এবং তবুও ত্রুটি পেয়েছি।

আমার পক্ষে একমাত্র সমাধানটি হ'ল গুগল থেকে ওপেনএসএসএল প্রোগ্রাম আনইনস্টল করা এবং উইন্ডোজের জন্য উইন 32 / উইন 64 ওপেনএসএসএল ইনস্টলার থেকে ডাউনলোড করা

এটি আসলে ম্যাজিকের মতো কাজ করে।


2

যদিও এই প্রশ্ন সহায়ক উপায়ে দর্শন উত্তর দেওয়া হয়েছে আমি শুধু যোগ করার জন্য যে যখন আমি অনুসৃত Rafal Maleks উত্তর আমার বয়স (Google এ হ্যাশ কী খেলুন কনসোল ব্যবহার করে) চেয়েছিলেন না অ্যাপ স্বাক্ষর SHA1 এ কী ব্যবহার করতে পারবেন, এখনও জেনেরিক পেয়েছিলাম ফেসবুক থেকে ত্রুটি। পরিবর্তে আমাকে আপলোড শংসাপত্রের অংশটি (গুগল প্লে কনসোলের অ্যাপ্লিকেশন স্বাক্ষরকারী অংশের ঠিক নীচে) থেকে SHA-1 শংসাপত্রের ফিঙ্গারপ্রিন্ট ব্যবহার করা দরকার । একই প্রক্রিয়া অন্যথায়;

  1. গুগল প্লে কনসোলে আপলোড শংসাপত্র বিভাগ থেকে SHA-1 শংসাপত্রের আঙ্গুলের ছাপটি অনুলিপি করুন

  2. SHA-1 রূপান্তর করুন: http://tomeko.net/online_tools/hex_to_base64.php ব্যবহার করে এবং আউটপুট অনুলিপি করুন (বেস 64)

  3. এটি ডেভেলপার.ফেসবুক.কম এ কী হ্যাশ ইনপুটটিতে আটকান এবং পরিবর্তনগুলি সংরক্ষণ করুন।

আশা করি এই উত্তরটি রিডান্ট্যান্ট নয় এবং এমন কাউকে সহায়তা করবে যা অ্যাপ সাইনিং শংসাপত্রের সাথে এটির কাজ করতে পারে না।

এখন ফেসবুক লগইন আমার অ্যাপে ডিবাগ এবং রিলিজ উভয় মোডে কাজ করে।


1

আপনার অনক্রিয়েট পদ্ধতিতে নিম্নলিখিত কোডটি আটকে দিন:

try {
    PackageInfo info = getPackageManager().getPackageInfo(
                           "com.example.packagename",
                           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) {
    e.printStackTrace();
}
catch (NoSuchAlgorithmException e) {
    e.printStackTrace();
}

কেবল প্যাকেজের নাম পরিবর্তন করুন। তারপরে আপনার লগকিট ফাইলটিতে যান এবং এখানে ডিবাগ অনুসন্ধান নির্বাচন করুন। তারপরে আপনি হ্যাশ কীটি পেয়ে যাবেন। এখন এই হ্যাশ কীটি অনুলিপি করুন এবং তারপরে বিকাশকারী.ফেসবুক.এপ_আইডি সাইটে যান, আপনার হ্যাশ কীটি সম্পাদনা করুন এবং টিপুন Save। এখন আপনার অ্যান্ড্রয়েড প্রকল্পটি আবার চালান। আমি মনে করি সমস্যা সমাধান হবে।


7
অন্য লোকটির পুনরাবৃত্তি
Beto Caldas

1

এটি একই সমস্যাযুক্ত কাউকে সহায়তা করতে পারে।

  1. নীচের কোডটি ব্যবহার করে কী হ্যাশ তৈরি করুন

    keytool -exportcert -alias <your_keystore> alias -keystore <your_keystore_file> | openssl sha1 -binary | openssl base64

    কীটোল কীভাবে ব্যবহার করবেন

  2. এটি ফেসবুক বিকাশকারীগুলিতে প্রয়োজনীয় ক্ষেত্রে আটকান

  3. অ্যান্ড্রয়েড স্টুডিওতে মেনু ফাইলপ্রকল্পের কাঠামো

    এখানে চিত্র বিবরণ লিখুন

    স্বাক্ষর করার পরামিতি যুক্ত করুন।

  4. স্বাদ নির্বাচন করুন

    এখানে চিত্র বিবরণ লিখুন

    আমরা তৈরি স্বাক্ষর কনফিগারেশন নির্বাচন করুন।

  5. বিল্ড টাইপ নির্বাচন করুন

    এখানে চিত্র বিবরণ লিখুন

  6. বিল্ড বৈকল্পিক নির্বাচন করুন এবং এটি তৈরি করুন

    এখানে চিত্র বিবরণ লিখুন


1

আমি আমার অ্যাপটি ডিবাগ করার সময় আমার একই সমস্যা ছিল। আমি সংযুক্ত চিত্রটিতে যে হ্যাশটি পেরিয়ে গিয়েছি তা আমি আবার লিখেছি (ফেসবুক যা বলেছে এটি অবৈধ) এবং এটি ফেসবুকের বিকাশকারীদের কী হ্যাশগুলিতে কনসোলে যুক্ত করেছি। শুধু টাইপস সম্পর্কে সতর্কতা অবলম্বন করুন।

এই দ্রবণটি যথাযথ সমাধানের চেয়ে সহজ সমাধানের মতো।


1

আপনি যদি কীহ্যাশটি ম্যানুয়ালি টাইপ করে থাকেন (উদাহরণস্বরূপ মোবাইল থেকে ফেসবুক ড্যাশবোর্ডে), ছোট এল এবং মূলধন I এর মধ্যে পার্থক্য করতে ভুলবেন না make


1
try {
    PackageInfo info = getPackageManager().getPackageInfo(
                           "www.icognix.infomedia",
                           PackageManager.GET_SIGNATURES);
    for (Signature signature : info.signatures) {
        MessageDigest md = MessageDigest.getInstance("SHA");
        md.update(signature.toByteArray());
        Log.d("YourKeyHash: ", Base64.encodeToString(md.digest(), Base64.DEFAULT));
        Log.d("YourKeyHash: ", Base64.encodeToString(md.digest(), Base64.DEFAULT));
    }
}
catch (PackageManager.NameNotFoundException e) {
}
catch (NoSuchAlgorithmException e) {
}

0

ফেসবুক যা ব্যবহার করেছে তা ডিবাগের জন্য ডিফল্ট পাসওয়ার্ড এবং ওরফে নয়। আপনার অনুসরণ করে এটি পরিবর্তন করা দরকার এবং এটি কার্যকর হবে।

/usr/lib/jvm/jdk1.8.0_66/bin/keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

আপনি যদি ডিফল্ট পাসওয়ার্ড দিয়ে কোনও পরিবর্তন না করেন তবে এটি "অ্যান্ড্রয়েড" হওয়া উচিত ।

আপনি বিল্ড.gradle ফাইল এ এটি কনফিগার করতে পারেন। তবে হ্যাশ তৈরির জন্য একই উফের পাসওয়ার্ড ব্যবহার করা উচিত:

android {
    signingConfigs {
        release {
            storeFile file("~/.android/debug.keystore")
            storePassword "android"
            keyAlias "androiddebugkey"
            keyPassword "android"
        }
    }
}

0

এখানে অনেকগুলি সঠিক উত্তর রয়েছে। শুধু একটা কথা:

তুলে নিয়ে হ্যাশ আটকান অ্যাপ্লিকেশনসেটিংসপ্রধান মাধ্যমে না দ্রুত শুরু টিউটোরিয়াল।


0

আমারও একই সমস্যা ছিল।

নিশ্চিত হয়ে নিন যে আপনি সেই একই ডিভাইস দিয়ে APK ফাইল তৈরি করেছেন যা হ্যাশকি তৈরি করেছে যা ফেসবুক বিকাশকারীদের বিভাগে সঞ্চিত রয়েছে।


0

আমি নিম্নলিখিতটি এতে যুক্ত করে ঠিক করেছি MainApplication.onCreate:

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

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

এরপরে আমি এটি Google বিকাশকারী কনসোলে আপলোড করেছি এবং তারপরে প্রাপ্ত এপিএকে ডাউনলোড করেছি যা কারণ যাই হোক না কেন, সম্পূর্ণ ভিন্ন কী হ্যাশ রয়েছে।

আমি তখন নতুন কী হ্যাশ নির্ধারণ করতে লোগগিকে ব্যবহার করেছি এবং অন্যান্য ব্যবহারকারীরা যেমন রূপরেখা প্রকাশ করেছে তেমন ফেসবুক যুক্ত করেছি।


0

তুমি উৎপাদিত মুক্তি কী হ্যাশ, নিশ্চিত করুন তাহলে আপনি আপনার কীস্টোর প্রকৃত পাসওয়ার্ড লিখুন এবং না "Android"।

এটা আমার সমস্যা ছিল। ডিবাগ রিলিজ কাজ করছিল, তবে প্রকাশের APK টি ছিল না।


-1

আপনার ক্রিয়াকলাপের onCreate () পদ্ধতিতে নীচের কোডটি ব্যবহার করুন:

try {
    PackageInfo info = getPackageManager().getPackageInfo(
                           "your application package name",
                           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
অন্য লোকটির পুনরাবৃত্তি
Beto Caldas
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.