Избранное | Русский | Войти

Расширения волн

Содержание

  1. Что такое расширения волн?
  2. Какое расширение следует использовать?
  3. Как упаковать расширение?
    1. Манифесты расширений
    2. Установка расширения
    3. Пример

Что такое расширения волн?

Расширения волн позволяют предоставить новые возможности в волне. На данный момент API Google Wave поддерживает следующие расширения:

  • Роботы. Создавайте расширения в виде роботов, автоматизируя рутинные задачи. Роботы представляют собой участников волны, поддерживаемых программным обеспечением, а не людьми. Дополнительную информацию можно найти в Обзоре и Руководстве по API роботов.
  • Гаджеты. Создавайте расширения в виде гаджетов, предоставляя пользователям новый способ взаимодействия. Гаджеты позволяют запускать в волнах небольшие программы. Дополнительную информацию можно найти в Руководстве по гаджетам Google Wave.

Какое расширение следует использовать?

Роботы и гаджеты не являются взаимоисключающими. Их можно использовать вместе, но служат они для разных целей:

  • Робот является автоматизированным участником волны. Роботы представляют собой приложения, выполняемые в "облаке". Они могут изменять состояние в самой волне. Робот может считывать содержание волны, участником которой он является, изменять его, добавлять и удалять участников, а также создавать всплески и волны. Роботы выполняют действия в ответ на события. Например, робот может опубликовывать содержание волны на общедоступном сайте блогов и обновлять ее комментариями пользователей.
  • Гаджет представляет собой небольшое приложение, выполняемое в клиенте. Владельцем гаджета является волна. Для всех ее участников состояние гаджета одинаково. Гаджет отвечает только на изменения своего объекта состояния и участников волны (например, вступление или выход участников из волны). Гаджет не влияет на саму волну. Гаджеты волн обычно не являются полноценными приложениями, а представляют собой дополнения, которые предназначены для усовершенствования определенных типов обсуждений. Например, волна может содержать гаджет судоку, который позволяет ее участникам соревноваться в решении головоломки.

В этой таблице перечислены различия:

Робот Гаджет
Выполняется в "облаке". Выполняется на клиенте.
Один экземпляр определенного робота на волну. Помните, что робот является участником волны, поэтому каждый участник или робот представляется уникальным экземпляром. Однако волна может включать несколько участников, в том числе роботов. Несколько экземпляров на волну.
Может изменять волну и выполнять те же действия, что и человек. Не может изменять волну и обладает ограниченными сведениями о ней. Может определять только изменения участников волны.
Может изменять гаджет. Не только не может изменять робота, но даже не может узнать о его существовании.

Как упаковать расширение?

В этом разделе описан процесс упаковки расширения.

Манифесты расширений

Манифесты расширений представляют собой XML-файлы, которые определяют способ подключения расширений к клиенту Google Wave. Манифесты состоят из двух частей: подключений и действий. Подключения определяют способ и место присоединения расширения к клиенту, а действия – что произойдет при использовании расширения.

Например, зачастую для подключения используется кнопка на панели инструментов. Вот пример:

<extension location="Toolbar">
   <info text="Are You In?"
         description="Click to insert the Are You In? gadget."
         imageUrl="http://wave-api.appspot.com/public/gadgets/areyouin/icon.png"/>
   <insertGadget url="http://wave-api.appspot.com/public/gadgets/areyouin/gadget.xml"/>
 </extension>

В этом простом манифесте объявлено, что кнопку нужно добавить на панель инструментов (в заявлении location="Toolbar"), а также указан URL ее значка (imgUrl). На данный момент допустимыми значениями location являются Toolbar и NewWaveMenu. С каждым объектом location связан контекст. У Toolbar контекст редактирования, а у NewWaveMenu – глобальный контекст. Это важно для используемых манифестом действий. Действие insertGadget выполняется только в контексте редактирования, а действие createNewWave – только в глобальном контексте.

Вот пример использования глобального контекста:

<extension location="NewWaveMenu">
   <info text="New Twave"
         description="Creates a new Twitter wave."/>
   <createNewWave>
   <participant id="tweety-wave@appspot.com"></participant>
   </createNewWave>
</extension>

Это расширение будет добавлено в NewWaveMenu в виде пользовательского параметра. При нажатии на него создается волна и добавляется участник tweety-wave@appspot.com.

Манифест расширения является предварительным просмотром XML. В будущем он будет существенно расширен, чтобы можно было выполнять гораздо больше действий. Вот текущая схема.

Установка расширения

У каждого аккаунта пользователя есть специальная волна, содержащая все зарегистрированные на данный момент расширения. В настоящее время это выполняется с помощью ссылок на уникальные расширения по URL. Это предполагает, что манифесты расширений хранятся в общедоступном месте, чтобы клиент Google Wave мог их использовать. Несмотря на то что можно изменять волну напрямую, это вовсе необязательно. Вместо этого для установки расширений (и их отправки другим!) можно использовать элемент установки расширения.

Чтобы установить расширение, выполните следующие действия:

  1. Создайте волну.
  2. Выберите Отладка > Добавить установщик расширения.
  3. В диалоговом окне Вставка установщика расширения введите URL манифеста расширения и дополнительно укажите URL изображения расширения. Если указать изображение, оно будет добавлено к изображению Установка, отображаемому внутри всплеска.
  4. Чтобы отправить всплеск, нажмите кнопку Готово. Кнопку Готово необходимо нажать перед нажатием кнопки Установить.
  5. Чтобы добавить расширение в волну настроек, нажмите кнопку Установить.

Чтобы отправить расширение другим людям, просто добавьте их в волну в качестве участников. После этого они смогут легко установить расширение в своей волне настроек!

Пример

Вот расширение, которое можно установить и использовать:

  • URL манифеста расширения: http://wave-api-dmo.appspot.com/public/simplemap/whereareyou.xml
  • URL изображения расширения: http://wave-api-dmo.appspot.com/public/simplemap/whereareyou.png

Это расширение добавляет на панель инструментов кнопку, с помощью которой можно добавить гаджет "Где вы?" в любую волну. Гаджет "Где вы?" позволяет участникам волны отметить свое местонахождение на карте.

Чтобы установить это расширение, следуйте указаниям в разделе Установка расширений. Установив его, можно создать волну, на панели инструментов которой появится значок гаджета "Где Вы?".