2013-07-16 3 views
1

У меня есть приложение на базе Android, и я разрабатываю приложение Glass в качестве компаньона.Обновление обложки пакета при добавлении нового элемента временной шкалы

код для приложения жизни в двух местах:

  • Веб-приложение (аутентификация OAuth/маркер создание, создание подписки, обработка Уведомлять обратные вызовы с сервером Google)
  • Android приложения (создание совместного контакта, удалить контакт совместного доступа и создать обложку пакета для «фотоальбома»)

После обработки всей аутентификации OAuth и связи с API-интерфейсом Mirror у пользователя есть возможность в приложении Android создать контакт для совместного доступа. Часть этого процесса включает создание элемента временной шкалы, который служит обложкой для фотоальбома.

На стекле, когда пользователь делится фотографиями с этим контактом, обработчик уведомлений в моем веб-приложении присваивает фотографии комплекту, созданному при установлении контакта совместного доступа.

Все это прекрасно работает - проблем нет.

Что я натолкнулся на то, что через 7 дней карты временной шкалы начинают падать из интерфейса Glass. Это включает в себя мою обложку для «фотоальбома».

Очевидно, мне нужно обновить крышку комплекта, чтобы оставаться активной, но я не совсем уверен, как это сделать (без быстрого копирования моей квоты, то есть). Используя API Mirror, я смог получить элементы с временной шкалы, а затем проверить каждую из них на обложке пакета (на основе идентификатора пакета и флажка isBundleCover), но это ужасно неэффективно, когда дело доходит до сохранения моих 1000 запросов на каждый день. Я просто использую пакет так, чтобы он не предназначался?

Есть ли более простой и эффективный способ получения крышки пучка и просто обновления, чтобы он не упал с временной шкалы через 7 дней? В каком-то смысле кажется, что мне не нужно обновлять пакет каждый раз, когда новая фотография предоставляется совместно, но я не уверен в альтернативе.

Как я уже упоминал, пакет создан в Android-приложении, и этот идентификатор отправляется в базу данных, совместно используемую как веб-приложением, так и Android-приложением. За исключением запроса, что db, используя идентификатор bundleID, чтобы получить исходный ItemID для пакета, я не уверен, как сделать ItemID доступным в обработчике уведомлений.

Благодарим за любые предложения!

ответ

3

Как вы упомянули наиболее эффективный метод, когда речь идет о сохранении API квот будет сохранить itemID вашего расслоении покрова в собственном хранилище данных и извлекать ее оттуда по мере необходимости

Помимо этого есть некоторые вещи, вы можете сделать, чтобы найти карту на временной шкале с помощью API зеркал проще, поскольку метод timeline.list предлагает некоторые дополнительные параметры для сужения результатов.

  1. ?bundleId=yourBundleId

    Это будет возвращать только результаты с прилагающимся BundleID, в зависимости от того, сколько карт в вашем пачке, вы можете найти нужную карту на первой странице результатов, так что нужно будет только один запрос API

  2. &sourceItemId=something

    Если ваши связки становятся достаточно большими, чтобы пучок крышка не будет найден на первой странице результатов, одна вещь, которую вы можете сделать, это дополнительный ly определите sourceItemId, который вы установили только для обложки пучка и ни одной из других карт внутри комплекта. Таким образом, поиск bundleId + sourceItemId (который вы также можете установить в тот же комплект, чтобы упростить его), будет иметь только один элемент - обложку пакета.

Используя эти методы, вы сможете найти правильную карту в одном запросе и обновить ее во втором запросе.

+0

Благодарим вас за комментарии и подтверждение части моей теории о том, как обрабатывать обновление. Если никакие другие идеи не будут представлены в ближайшие пару дней, я буду принимать это как ответ. Еще раз спасибо! – Kyle