Привет всем, кто только недавно разработал мое первое приложение для Android, которое входит в Facebook и пытается обновить статус без диалогового окна, используя API графа.Приведенный ниже код является кодом авторизации (который был на самом сайте разработчика fbook), и до недавнего времени он работал нормально для меня.Теперь мое приложение нормально регистрируется в моем эмуляторе, но когда я экспортирую файл APK и помещаю его в свой телефон, это дает мне «ошибку аутентификации». Кто-то может объяснить это? Он просто больше не показывает мне страницу входа в систему, после того как я создалновое хранилище ключей и хеш-ключ И, как обычно, обновил этот хеш-ключ на странице моего приложения на Facebook.
Я думаю, что это из-за хеш-ключа и т. д., но я не понимаю этого достаточно хорошо, чтобы понять, что не так. Что я делаюя нажимаю экспорт, приложение, затем я создаю новое хранилище ключей (первый раз, в противном случае я использую существующее хранилище ключей), затем я нахожу свой хеш-ключ с помощью «keytool exportcert» и т. д., как показано на сайте разработчика fbook. Затем я ввожу этот хеш-ключв приложение на моей учетной записи Facebook. Но иногда, хотя пароль хранилища ключей правильный, он говорит, что «формат хранилища ключей» отличается, хотя я использовал его до того же приложения! Тогда мне нужно создать новое хранилище ключей, и exportcert снова и всеэто боль! Должен быть более легкий путь?
Может кто-нибудь объяснитькак работает хэш-ключ для приложений Facebook?
Заранее спасибо!
Мой код аутентификации:
public void login()
{
facebook.authorize(this,new String[] { "email", "read_stream", "publish_stream"}, new DialogListener(){
int fbcheck=0;
@Override
public void onComplete(Bundle values) {
fbcheck=1;
facebookauthcheck(fbcheck);
}
@Override
public void onFacebookError(FacebookError error) {
fbcheck=0;
facebookauthcheck(fbcheck);
}
@Override
public void onError(DialogError e) {
fbcheck=0;
facebookauthcheck(fbcheck);
}
@Override
public void onCancel() {
fbcheck=2;
facebookauthcheck(fbcheck);
}
});
}
public void facebookauthcheck(int fbcheck)
{
if (fbcheck == 0) {
Toast.makeText(this, "Authentication Error", Toast.LENGTH_LONG).show();
}
else if (fbcheck==1)
{
Toast.makeText(this, "Authenticated", Toast.LENGTH_LONG).show();
}
else
Toast.makeText(this, "Authentication Cancelled", Toast.LENGTH_LONG).show();
}