Ứng dụng này không có mã băm Android Key nào được định cấu hình. - Đăng nhập bằng Facebook SDK


81

Tôi gặp sự cố khi đăng nhập bằng tài khoản facebook trong ứng dụng của mình. Tôi đã đọc trên Facebook Doc. Và tôi đã làm tất cả các bước trên Facebook Doc.

Lần đầu tiên đăng nhập bằng tài khoản facebook trong ứng dụng - THÀNH CÔNG ! và hơn đăng xuất trong ứng dụng. Tôi muốn đăng nhập lại bằng tài khoản facebook của mình. Nhưng không hoạt động !! Và tôi đã lấy Excepiton này! Làm ơn giúp tôi !

Ngoại lệ: Ứng dụng này không có mã băm Android Key được định cấu hình. Hãy định cấu hình mã băm khóa ứng dụng của bạn tại http: Develop.facebook.com/apps/ "APP ID"

Về tài chính; Tôi đã từng tham gia viết mã cho HashKey Genarate

 try {
        PackageInfo info =     getPackageManager().getPackageInfo("MY PACKAGE NAME",     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("MY KEY HASH:", sign);
          //  Toast.makeText(getApplicationContext(),sign,     Toast.LENGTH_LONG).show();
        }
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}

Tôi đã giải quyết vấn đề của mình. Tôi nên thực hiện thiết lập trên Facebook. Các bước:

  1. Truy cập trang của nhà phát triển facebook: https://developers.facebook.com/
  2. Mở các tab Ứng dụng và nhấp vào Cài đặt

  3. Dán mã băm tạo vào trường của HashKey = Nếu bạn chưa có, hãy lấy phần mã băm khóa của bạn

  4. Và hơn Đăng nhập một lần sẽ là "Có": Đăng nhập một lần: Bật cài đặt này.

Tôi muốn chia sẻ quyết tâm của mình. Có lẽ ai đó cần giải pháp này. Chúc may mắn !


1
Cảm ơn - bạn đã hỗ trợ tôi và tôi đã gặp phải vấn đề tương tự +1
Simon

Facebook hiện nay cung cấp rất tốt nhanh chóng bắt đầu giải thích làm thế nào để tạo ra băm, sau khi bạn nhấp vào nút cài đặt và thêm một nền tảng mới: Đối với Mac: keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64Đối với Windows:keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
FilipR

Bạn đã giải quyết vấn đề này như thế nào?
andrei

2
Thay vào đó, bạn nên đăng giải pháp của mình dưới dạng câu trả lời và đánh dấu nó là câu trả lời. Điều này sẽ ngừng hiển thị câu hỏi này là chưa được trả lời.
Sufian

Câu trả lời:


15

Bạn không cần tạo khóa băm của mình. Khi bạn cố gắng truy cập facebook từ ứng dụng của mình, bạn sẽ nhận được thông báo lỗi cho biết sau "[Hash Key]" chưa được đăng ký hoặc định cấu hình. Chỉ cần sao chép khóa đó và truy cập developer.facebook.com , nơi bạn đã đăng ký ứng dụng của mình để xác minh facebook và bao gồm dưới các hàm băm chính.

Hãy nhớ rằng: Đối với mọi thiết bị, khóa băm có thể khác nhau. Bạn cần phải bao gồm nó mới.

Theo mặc định, khóa này sẽ hoạt động: 2jmj7l5rSw0yVb / vlWAYkK / YBwk =

Ngoài ra, trước mọi thứ, bạn cần cung cấp cho facebook thông tin chi tiết về Ứng dụng của bạn, cùng với ảnh chụp màn hình về nơi bạn đang sử dụng các tính năng của facebook và lý do tại sao bạn đang sử dụng. Họ cần xác minh điều đó.


Cảm ơn Nielarshi cho câu trả lời của bạn. Nhưng tôi đã giải quyết theo cách khác.
Tarık Yurtlu

2
@ TarıkYurtlu Nó là gì? Tôi đã đăng ký khóa băm nhưng nó không hoạt động. Nếu tôi gỡ cài đặt ứng dụng facebook, nó sẽ hoạt động. Tôi nên đăng ký ứng dụng để phát hành hay chúng tôi có thể làm nó để phát triển?
Amt87

4
Chủ đề cũ, nhưng ... Không phải khóa khác nhau cho mỗi "phiên bản apk đã ký" và không cho mỗi thiết bị? Chắc chắn, nếu nó là cho mỗi thiết bị, sẽ không ai có thể sử dụng nó. Gợi ý cho người khác: Khóa băm giữa phiên bản đã ký mà bạn tải lên và phiên bản bạn sử dụng khi vừa phát triển là khác nhau. Mặc dù bạn có thể thêm nhiều khóa băm trong facebook nhưng không thành vấn đề. Thời điểm bạn sử dụng khóa ký khác, hàm băm sẽ thay đổi.
Renevdkooi

10

Để tạo mã băm của khóa phát hành, hãy chạy lệnh sau trên Mac hoặc Windows thay thế bí danh khóa phát hành và đường dẫn đến kho khóa của bạn. Trên OS X, chạy:

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

Trên Windows, sử dụng:

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


Tham khảo: https://developers.facebook.com/docs/android/getting-started/#create_hash


2

Nếu bạn chưa xuất bản ứng dụng của mình và chỉ muốn sử dụng băm phiên bản gỡ lỗi, bạn có thể tải ứng dụng đó từ kho khóa gỡ lỗi của mình bằng lệnh sau:

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

Thêm về bài đăng SO liên quan này


1

Có một cách dễ dàng để lấy Hash Key của bạn.

Chỉ cần đặt tệp .kt chính của bạn, trong phương thức onCreate, các dòng sau:

FacebookSdk.sdkInitialize(this)
println("Facebook hash key: ${FacebookSdk.getApplicationSignature(this)}")

Sau đó sao chép kết quả vào trang web của nhà phát triển facebook. Đôi khi kết quả không có ký hiệu bằng (=) ở cuối chuỗi được tạo. Nếu vậy, hãy thêm nó theo cách thủ công.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.