Подтвердить что ты не робот

Контекстный гаджет Gmail (плагин/расширение Gmail): устарел? Невозможно? Как? (Невозможно выполнить OAuth 2.0)

Нам необходимо разработать внутреннее расширение gmail для обработки входящих писем, чтобы получатели могли взаимодействовать с нашим внутренним программным обеспечением. Я пытался выяснить, как использовать OAuth 2.0 в Gmail Contextual Gadget, но я не могу найти никакой конкретной документации для этого. Я не мог найти ничего полезного, когда искал переполнение стека с помощью контекстного + google-oauth (ключевое слово, рекомендованное Google).

Прежде чем вы дадите мне стандартные страницы, убедитесь, что у этого есть:

  • В минимальном примере Gmail контекстный гаджет manifest.xml, который использует OAuth 2.0
  • В идеале, с объяснением того, как развернуть его в домене (а не на рынке), я знаю, что он действительно был развернут и протестирован.

Например, стандартный пример приветствия на странице "Контекстные гаджеты" использует OpenID ( "openIdRealm" ) и был написан до OAuth 2.0:

https://developers.google.com/gmail/contextual_gadgets

OpenID не разрешен в OAuth 2.0:

https://developers.google.com/apps-marketplace/practices#3_use_oauth20

Ваше приложение не должно использовать OpenID или OAuth1.0. Любые доказательства такого использования приведут к тому, что ваше приложение не сможет выполнить процесс обзора.

Обратите внимание, что контекстные гаджеты - это клиентские Javascript-приложения, сильно отличающиеся от приложений веб-сервера и установленных приложений. Поэтому OAuth 2.0 следует использовать следующим образом:

https://developers.google.com/accounts/docs/OAuth2#clientside https://developers.google.com/accounts/docs/OAuth2UserAgent

Но контекстные гаджеты запускаются в контейнере, который обрабатывает первый вызов OAuth (google call, который вызывает наш сайт с токенами...). Живя на стороне клиента, контекстные гаджеты "не могут хранить секреты". наш сайт (страница перенаправления, https://example.com/oauth2callback) должен сохранить токен доступа (и, возможно, обновить токен) к сеансу, доступному для нашего гаджета код на стороне клиента.

В идеале я бы не использовал SSO, который, как я вижу, "нужен только для приложений, размещенных на рынке". Альтернативное развертывание - "для вашего домена", в котором используется Консоль расширения Google Apps:

https://developers.google.com/google-apps/extensions-console/

Но консоль расширения говорит, сверху: "Мы улучшаем пользовательский интерфейс, попробуйте новую консоль разработчиков", которая ссылается на:

https://console.developers.google.com/?redirected=true

Консоль разработчиков:

  • Он показывает проект, который был создан ранее в консоли расширения приложений. Я могу щелкнуть по нему, чтобы открыть большое меню (в сторону, слева).
  • API и Auth/Credentials - я создал идентификатор клиента и секрет для своего приложения. По-видимому, я должен использовать веб-приложения, а не учетную запись службы или установленное приложение, потому что я пытаюсь получить доступ к некоторым пользовательским данным (доступ к электронной почте), а не только службе Google, и я не являюсь автономным установленным приложением.

Невозможно сообщить об этом идентификаторе клиента в любом месте контекстного гаджета. Регистрируется ли и забывается?

Также (ошибка?), разрешения показывают мой идентификатор клиента в разделе "Учетная запись службы", даже если я НЕ создал учетные данные учетной записи службы.

И затем это: я не знаю, как развернуть мой контекстный гаджет (который не является автономным приложением) в моем домене из этой новой консоли разработчиков. Кажется, что есть только варианты, связанные с облачным развертыванием, и вкладки Compute слева.

Когда я пытаюсь выполнить развертывание из консоли расширения приложений (которая, предположительно, не устарела, только улучшена), я получаю эту ошибку:

Google Apps Marketplace    (I never deployed to marketplace, only my own domain)
Application installation not allowed.
The OAuth1.0 version is no longer available.
Instead, try installing the OAuth2.0 version.
[Return to dashboard]   (button)

Более того, возврат к кнопке панели инструментов приводит меня к сайту администрирования домена, который не позволяет ни развертывать, ни развертывать:

https://admin.google.com/mydomain.com/

Кстати, консоль расширения приложений никогда не обращается к странице переадресации, которую я создал, и никогда не читает спецификацию гаджета на моем сайте (никогда не пользовался Google, как было обещано), поэтому сообщение об ошибке должно указывать файл manifest.xml не использует OAuth 2.0... или Apps Extensions Console не использует его сам и обвиняет меня в этом!

Итак, контекстное приложение Gmail:

  • Устаревшие?
  • Невозможно сейчас?
  • Авторизованный с OAuth 2.0? Как?
4b9b3361

Ответ 1

Были и те же проблемы. Мне (едва) удалось добавить мои гаджеты в свои доменные электронные письма, выполнив следующие шаги. Здесь я могу поделиться;

1) Создал проект через (https://console.developers.google.com). Включен в Marketplace SDK в меню навигации по интерфейсам API. Как только он включится, перейдите в верхнюю часть страницы и нажмите "шестерни" для SDK Google Apps Marketplace. Это приведет вас к странице со ссылкой для (переход на исходную консоль). Нажмите ссылку.

2) Вы должны быть перенаправлены на страницу формы. Заполните все необходимые поля в форме. Проверьте расширение COB и объявите свой идентификатор экстрактора (я использовал предварительный консервный экстрактор, не проверял его с помощью специальных экстракторов) в текстовом поле Extractor Url, ваш URL-адрес гаджета с помощью текстового поля Gadget Url и выберите области. Нажмите кнопку "Добавить", а затем кнопку "Сохранить изменения", как только вы закончите.

3) Перейдите в меню API Access и создайте идентификатор клиента OAuth 2.

Здесь, где шаги для меня не ясны, но я расскажу, что я сделал, чтобы иметь гаджеты, доступные в моем домене.

3) Я нажал кнопку Test Install Flow поверх формы.

4) Я добавил администратора пользователя в качестве редактора для этого проекта.

5) Затем мне пришлось выйти из системы, очистить кэш, войти в систему как пользователь admin/domain, чтобы увидеть контекстный гаджет внизу электронной почты.

Надеюсь, что это поможет.

Ответ 2

Документация для Google Контекстуальные гаджеты - плохой шуток, устаревший и неправильный, не тратьте свое время.

Ответы здесь, на SO, приблизили меня, но я никогда не получал эту работу.

К счастью, я нашел gmail.js, что позволило мне написать расширение Chrome, чтобы сделать то, что мне нужно...

1- Загрузите проект Gmail Chrome Extension Boilerplate, который является примером расширения chrome для примера chrome с помощью gmail.js.

2- Обновить основную функцию в файле main.js примерно так:

var main = function(){

    gmail = new Gmail();
    gmail.observe.on("open_email", function(id, url, body, xhr) {

        // Inject a toolbar:
        var $email_body = gmail.dom.email_body();
        $email_body.prepend('<div class="my_toolbar"><a>Do something</a></div>');
    });
}

Это даст вам следующее:

введите описание изображения здесь

Ответ 3

Способ, описанный в https://developers.google.com/gmail/contextual_gadgets, кажется, полностью устарел. Даже форма в консоли Google Apps для гаджетов кажется устаревшей.

Вам нужно следовать этому описанию: https://developers.google.com/apps-marketplace/preparing

Контекстные гаджеты теперь разрабатываются с помощью консоли API (а не консоли приложения), и есть форма для создания экстракторов и т.д.

Ответ 4

Пожалуйста, выполните следующие действия:

  • Войдите в свой администратор Gmail
  • откройте новую вкладку и введите http://console.developers.google.com
  • Нажмите кнопку "API" на левой панели Gmail
  • Выберите следующие API: я. API gmail
    II. API Google Marketplace
    III. Календарь API
    внутривенно SDK Google Admin
  • После включения всех вышеперечисленных API, пожалуйста, откройте SDK Google Apps Marketplace и нажмите ссылку "Настроить" (вы должны создать идентификатор клиента).
  • Заполните данные соответствующими данными, вам также необходимо загрузить изображения соответствующего размера.
  • Заполните все поля Обязательные и добавьте экстракторы, как предлагалось Google.
    i) имя параметра должно соответствовать контекстуальному API, а значение для всех - ". *" иначе гаджет не появится в gmail
  • Включить универсальный URL службы
  • Включить расширение COB
  • Добавьте Gtext Extractors Gmail, вы можете добавить несколько экстракторов для гаджета, но URL-адрес гаджета должен быть таким же, как и для всех экстракторов
  • Вы можете добавить несколько областей для каждого экстрактора
  • Сохраните все изменения.

Что все!

Вы можете использовать приведенную ниже ссылку для справки: https://developers.google.com/apps-marketplace/preparing