Итак, у меня есть приложение для facebook, которое реализовано в приложении для Android, отправив сообщение на стену FB. Все время в разработке, как в эмуляторе, так и на моем телефоне, все работало нормально. Я поставил хэш из моего файла debyg.keystore в приложение FB, все в порядке. Теперь, когда я экспортировал свое готовое приложение и подписал его, я выпустил новый хэш для ключа выпуска и поместил его в настройки приложений. Когда он установлен, он по-прежнему отлично работает на моем телефоне, но не на чужом. Поэтому я подключил другой телефон и проверил журналы, пытаясь отправить сообщение на стену. Получение каждого ответного ответа каждый раз:Android SSO Логин не выполнен: invalid_key: несогласованность клавиш Android
02-10 19: 41: 04.802: D/Facebook-authorize (26750): Ошибка входа: invalid_key: несоответствие клавиш Android. Ваш ключ «pwrvr9ALAVF7yAL5pKmGWRwR8i0» не соответствует разрешенным клавишам, указанным в настройках вашего приложения. Проверьте свои настройки приложения на странице http://www.facebook.com/developers
Я повторно установил на свой телефон много раз и на других телефонах, но все тот же. Вот фрагмент кода, который приводит либо разрешения, а затем разместить на стене или разместить прямо на стене:
// Check if connected to the internet first
if (connected())
{
//Get existing access_token if any
mPrefs = getPreferences(MODE_PRIVATE);
String access_token = mPrefs.getString("access_token", null);
long expires = mPrefs.getLong("access_expires", 0);
if(access_token != null)
{
facebook.setAccessToken(access_token);
}
if(expires != 0)
{
facebook.setAccessExpires(expires);
}
// Only call authorize if the access_token has expired.
if(!facebook.isSessionValid())
{
facebookAuthorizeAndPost(msg);
}
else
{
posToFBWall(msg);
}
}
else
{
Toast.makeText(getBaseContext(), "There's been a problem connecting to Facebook. Please make sure you're connected to the internet and try again", Toast.LENGTH_SHORT).show();
}
А вот фрагмент кода, который делает фактическое разрешение и делегатов на postToFBWall() метод в случае успеха:
private void facebookAuthorizeAndPost(final String msg)
{
facebook.authorize(this, new String[] {}, new DialogListener() {
@Override
public void onComplete(Bundle values) {
SharedPreferences.Editor editor = mPrefs.edit();
editor.putString("access_token", facebook.getAccessToken());
editor.putLong("access_expires", facebook.getAccessExpires());
editor.commit();
if (values.containsKey("access_token"))
{
posToFBWall(msg);
}
}
@Override
public void onFacebookError(FacebookError error) {}
@Override
public void onError(DialogError e) {}
@Override
public void onCancel() {}
});
}
Выполнение действия неточно здесь? Более того, то, что ошибка несоответствия ключа Android означает, почему это происходит? Все идеи, указатели оцениваются.
Спасибо за ссылку, которую я проверю. Когда вы говорите «проверьте, что ваш ключ,« pwrvr9ALAVF7yAL5pKmGWRwR8i0 »на самом деле указан как один из ключей вашего приложения на странице разработчика« что именно вы имеете в виду ... этот ключ нигде не указан, это хеш, который указан там, а не сам ключ.вот в чем мой вопрос: почему он забрасывает этот ключ в ошибке – fissk
И почему он работает на моем телефоне, пока он не работает на других – fissk
Что я имею в виду, проверяя, чтобы ваш ключ был одним из ключи для вашего приложения, я имею в виду, когда вы переходите на https://developers.facebook.com/apps и нажмите «Изменить настройки», в котором содержится ваш ключ Android Key: «pwrvr9ALAVF7yAL5pKmGWRwR8i0» Риска этого экрана: http: /i44.tinypic.com/2d96waw.jpg – TomJ