Android единый вход - PullRequest
       19

Android единый вход

4 голосов
/ 10 октября 2011

Я получаю login failed invalid key error при использовании обновленной версии Facebook.Если я его удаляю - он работает нормально ..

Как правильно создать хеш-ключ ?

Я знаю, что есть много вопросов и ответовдля единого входа в Android, но никто не помог мне реализовать единый вход в Android.

Мой код:

public class Main extends Activity {
    Facebook facebook = new Facebook("XXXXXXXXXX");

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        facebook.authorize(this, new DialogListener() {
            @Override
            public void onComplete(Bundle values) {}

            @Override
            public void onFacebookError(FacebookError error) {}

            @Override
            public void onError(DialogError e) {}

            @Override
            public void onCancel() {}
        });
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        facebook.authorizeCallback(requestCode, resultCode, data);
    }
}

Затем я сгенерировал хеш-ключ с помощью команды

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

Кроме того, у меня OpenSSL и дано местоположение OpenSSL до openssl.exe ..

После того, как я нажму Введите , он запрашивает пароль и я дал android в качестве пароля.Затем я получил ключ и заполнил «Мое заявление».

Ответы [ 5 ]

6 голосов
/ 19 октября 2011

Сначала вам нужно создать хеш-ключ, используя приведенный ниже код в соответствии с вашим путем.

C:\Documents and Settings\Logistic103>keytool -export -alias androiddebugkey -keystore "C:\Documents and Settings\Logistic103\.android\debug.keystore" | E:\Downloads\openssl-0.9.8k_WIN32\bin\openssl.exe sha1 -binary | E:\Downloads\openssl-0.9.8k_WIN32\bin\openssl.exe enc -a -e

Затем введите пароль:

Enter keystore password:  android

Затем перейдите к разработчикам Facebook ивойдите в Facebook.После входа в систему перейдите в свое приложение и нажмите на ссылку изменить настройки:

Enter image description here

Затем добавьте сгенерированный ключ как в ваше приложение,

Enter image description here

И вот как вы это делаете;)

Вышеуказанные шаги хорошо работают для меня.

6 голосов
/ 13 октября 2011

Правильный способ создания хеш-ключа

Пожалуйста, выполните следующие действия.

Вот шаги:

  1. Скачать OpenSSL с Google Code

  2. Извлеките его. Создайте папку - OpenSSL в C:/ и скопируйте извлеченный код сюда.

  3. определить путь к файлу debug.keystore. Если вы не нашли его, выполните поиск в C:/ и используйте путь в команде на следующем шаге.

  4. определите ваш keytool.exe путь и перейдите к этому каталогу / в командной строке и выполните эту команду (в одну строку):

    $ keytool -exportcert -alias androiddebugkey -keystore "C:\Documents and Settings\Administrator.android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary |"C:\OpenSSL\bin\openssl" base64

  5. запросит пароль. Поставь "андроид", вот и все. Вы получите хеш-ключ.

0 голосов
/ 28 марта 2013

Пожалуйста, перейдите по этой ссылке Сгенерируйте правильный хеш-ключ

Вы можете сгенерировать хеш-ключ проблематично как для подписанного, так и для неподписанного приложения.И скопируйте этот ключ из вашего Logcat.

0 голосов
/ 19 марта 2013

лучше используйте этот кусок кода

  try {
        PackageInfo info = getPackageManager().getPackageInfo("your.package",
                PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.d("YOURHASH KEY:",
                    Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
    } catch (NameNotFoundException e) {

    } catch (NoSuchAlgorithmException e) {

    }
0 голосов
/ 14 октября 2011

Ну, это может быть не ответ, я думаю, вы отметили Android, Facebook SDK, SSO и Вы .

Вы используете Windows XPдля генерации хеша?Может быть, в этом и заключается проблема.

...