Нам необходимо разработать внутреннее расширение gmail для обработки входящих писем, чтобы получатели могли взаимодействовать с нашим внутренним программным обеспечением. Я пытался выяснить, как использовать OAuth 2.0 в Gmail Contextual Gadget, но я не могу найти никакой конкретной документации для этого. Я не мог найти ничего полезного, когда искал переполнение стека с помощью контекстного + google-oauth (ключевое слово, рекомендованное Google).
Прежде чем вы дадите мне стандартные страницы, убедитесь, что у этого есть:
- В минимальном примере Gmail контекстный гаджет manifest.xml, который использует OAuth 2.0
- В идеале, с объяснением того, как развернуть его в домене (а не на рынке), я знаю, что он действительно был развернут и протестирован.
Например, стандартный пример приветствия на странице "Контекстные гаджеты" использует OpenID ( "openIdRealm" ) и был написан до OAuth 2.0:
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/
Но консоль расширения говорит, сверху: "Мы улучшаем пользовательский интерфейс, попробуйте новую консоль разработчиков", которая ссылается на:
Консоль разработчиков:
- Он показывает проект, который был создан ранее в консоли расширения приложений. Я могу щелкнуть по нему, чтобы открыть большое меню (в сторону, слева).
- 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)
Более того, возврат к кнопке панели инструментов приводит меня к сайту администрирования домена, который не позволяет ни развертывать, ни развертывать:
Кстати, консоль расширения приложений никогда не обращается к странице переадресации, которую я создал, и никогда не читает спецификацию гаджета на моем сайте (никогда не пользовался Google, как было обещано), поэтому сообщение об ошибке должно указывать файл manifest.xml не использует OAuth 2.0... или Apps Extensions Console не использует его сам и обвиняет меня в этом!
Итак, контекстное приложение Gmail:
- Устаревшие?
- Невозможно сейчас?
- Авторизованный с OAuth 2.0? Как?