2014-07-14 4 views
0

У меня есть приложение api mirror api и авторизованные пользователи через outh и сохраняют токен доступа и обновляют токен в базе данных для автономного использования. Теперь я хочу добавить элемент временной шкалы для этих пользователей в автономном режиме (используя сохраненный токен доступа и токен обновления).Mirror API добавляет элемент timeline в offine

Вот мой код,

String accessToken = db.getAccessToken(); 
String refreshToken = db.getRefreshToken(); 

BatchRequest batch = MirrorClient.getMirror(null).batch(); 
BatchCallback callback = new BatchCallback(); 

TimelineItem notifyTimelineItem = new TimelineItem(); 
notifyTimelineItem.setHtml(ZONE_HTML); 
Credential userCredential = AuthUtil.getCredential(userUniqueId); 

userCredential.setAccessToken(accessToken); 
userCredential.setRefreshToken(refreshToken); 

MirrorClient.getMirror(userCredential).timeline().insert(notifyTimelineItem).queue(batch, callback); 
batch.execute(); 

Здесь я получаю ошибку, как Не удалось вставить элемент, пользователю необходимо войти в систему. Как добавить элемент времени в автономном режиме?

+0

Двойная проверка ваших учетных данных. Mirror api будет работать, если у вас есть правильные учетные данные, созданные и сохраненные с уникальным идентификатором пользователя. –

ответ

0

Фактически я получил userCredential как null. Поэтому я использовал ниже код, и он отлично работает.

String accessToken = db.getAccessToken(); 
Mirror service = new Mirror.Builder(new NetHttpTransport(), new GsonFactory(), null).setApplicationName("GOauthAndroid").build(); 

TimelineItem timelineItem = new TimelineItem(); 
timelineItem.setHtml(DANGER_ZONE_HTML); 
timelineItem.setNotification(new NotificationConfig().setLevel("DEFAULT")); 
try { 
    service.timeline().insert(timelineItem).setOauthToken(newAccessToken).execute(); 
} catch (IOException e) { 
    e.printStackTrace(); 
}