Search code examples
google-glassgoogle-mirror-api

Mirror API add timeline item in offine


I have a mirror api app, and authorised users via outh and saved their access token and refresh token in database for offline use. Now I want to add timeline item to those users offline (using saved access token and refresh token).

Here is my code,

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();

Here am getting error like Failed to insert item, user need to login . How can I add timeline item in offline?


Solution

  • Actually I got userCredential as null. So I used below code and it works fine.

    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();
    }