У меня возникает повторяющаяся проблема при использовании методов OAuth Facebook. Несмотря на попытку моей собственной реализации, все должно быть совместимым, а диалоги работают нормально, но я продолжаю получать ошибку 2500, когда я пытался делать запросы. Мой Войти код, называемый в OnCreate, заключается в следующем:Идентификатор OAuth недействителен: ошибка 2500
mPrefs = m_kActivity.getPreferences(m_kActivity.MODE_PRIVATE);
String access_token = mPrefs.getString("access_token", null);
long expires = mPrefs.getLong("access_expires", 0);
if(access_token != null) {
m_kFacebookClient.setAccessToken(access_token);
}
if(expires != 0) {
m_kFacebookClient.setAccessExpires(expires);
}
/*
* Only call authorize if the access_token has expired.
*/
if(!m_kFacebookClient.isSessionValid()) {
m_kFacebookClient.authorize(m_kActivity, new String[] {
"publish_stream", "read_stream" },
new Facebook.DialogListener() { // OVERLOADS }
}
и мой опубликовать метод, сделанный в OnCreate тоже
byte[] data = null;
String dataPath = "/mnt/sdcard/DCIM/100MEDIA/VIDEO0001.3gp";
String dataMsg = "TestStuff";
String dataName = "VIDEO0001.3gp";
Bundle param;
AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(m_kFacebookClient);
InputStream is = null;
is = new FileInputStream(dataPath);
data = readBytes(is);
param = new Bundle();
param.putString("message", dataMsg);
param.putByteArray("video", data);
param.putString("filename", dataName);
mAsyncRunner.request("me", param, "POST",
new AsyncFacebookRunner.RequestListener() { // OVERLOAD }
Я пытался получать токен информацию и правильно:
05-15 14:53:17.149: D/myapp(7964): access token = AAACmjJqKCmMBAFRMjn49t7DvXEPlRyKnbdghdthdth31654651oGGJnBpSxEiLb5R3ZAxEEoI0x4JAfCvnQWIyK08cmzUGqX1I2IeeyV
05-15 14:53:17.149: D/myapp(7964): expiration = 1337090401151
05-15 14:53:17.169: D/myapp(7964): expiration datetime = Tue May 15 16:00:01 CEST 2012
05-15 14:53:17.169: D/myapp(7964): is session valid? true
05-15 14:54:48.849: D/myapp(7964): {"error":{"message":"An active access token must be used to query information about the current user.","type":"OAuthException","code":2500}}
EDIT: Если я добавлю разрешение «offline_access», токен станет ошибочным.
05-15 15:24:06.639: D/myapp(8180): expiration = 0
05-15 15:24:06.669: D/myapp(8180): expiration datetime = Thu Jan 01 01:00:00 CET 1970
05-15 15:24:06.679: D/myapp(8180): is session valid? true
Что касается поведения, он никогда не просит меня войти в систему после того, как я зарегистрировался в первый раз. Если я удалю его из телефона, мне нужно снова войти в систему, и если я удалю приложение из своей учетной записи FB, он снова запросит все разрешения. Диалоги работают отлично.
проверьте свой токен здесь: https://developers.facebook.com/tools/debug - он недействителен. Наверное, персонаж отрезан? – avs099
Выпущено: \t 1337088246 (4 минуты назад) Expires: Никогда не Действительно: \t Правда Происхождение: \t Mobile Web Faceweb Области применения: \t create_note offline_access photo_upload publish_actions publish_stream read_stream share_item status_update video_upload –
маркер из вашего поста делает не работа. У вас есть еще один? Также - это токен приложения или токен пользователя? – avs099