2014-10-06 12 views
18

Musimy opracować wewnętrzne rozszerzenie gmail do przetwarzania przychodzących wiadomości e-mail, pozwalając odbiorcom na interakcję z naszym wewnętrznym oprogramowaniem. Próbuję dowiedzieć się, jak korzystać z protokołu OAuth 2.0 w gadżecie kontekstowym Gmaila, ale nie mogę znaleźć żadnej konkretnej dokumentacji. Nie mogłem znaleźć niczego przydatnego, gdy szukałem przepełnienia stosu kontekstualnego + google-oauth (słowo kluczowe zalecane przez Google).Kontekstowy gadżet Gmail (wtyczka/rozszerzenie Gmaila): przestarzały? Niemożliwy? W jaki sposób? (Nie można zrobić OAuth 2.0)

Zanim dasz mi standardowych stron, upewnij się, że ma to:

  • Minimalnie, przykład Gmail gadżet manifest.xml kontekstowej, która wykorzystuje OAuth 2.0
  • Idealnie, z wyjaśnieniem sposobu wdrażania to w domenie (nie na rynku), więc wiem, że to zostało przetestowane.

Na przykład, średnia cześć przykład w stronę kontekstu Gadżety wykorzystuje OpenID ("openIdRealm") i został napisany przed OAuth 2.0:

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

OpenID nie jest dozwolone w OAuth 2.0:

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

Your application must not use OpenID or OAuth1.0. Any evidence of such usage will result in your application failing the review process.

Należy pamiętać, że kontekstowe gadżety to aplikacje JavaScript po stronie klienta, bardzo różniące się od aplikacji serwera internetowego i zainstalowanych aplikacji. Więc OAuth 2.0 powinny być stosowane tak:

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

Ale kontekstowych gadżety uruchamiane w kontenerze, który zajmuje pierwsze wezwanie OAuth (google zadzwonić, który oddzwania naszej strony żetonów ...). Żyjąc po stronie klienta, kontekstowe gadżety "nie mogą zachować tajemnicy". nasza strona internetowa (strona przekierowania, https://example.com/oauth2callback) musi zapisać token dostępu (i może odroczyć token) do sesji dostępnej dla naszego kodu gadżetowego po stronie klienta.

Najlepiej byłoby nie używać SSO, które widzę tylko "potrzebne do aplikacji wdrożonych na rynku". Alternatywą rozmieszczenia „dla domeny”, która wykorzystuje Aplikacje Google Extensions Console:

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

ale konsola przedłużenie mówi, na górze, „Jesteśmy poprawy doświadczenia użytkownika, wypróbować nowy Developers Console”, który linki do:

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

Developers Console:

  • To pokazuje projektu t kapelusz został wcześniej stworzony w konsoli rozszerzeń aplikacji. Mogę go kliknąć, aby otworzyć duże menu (na bok po lewej)
  • APIs & Auth/Credentials - utworzyłem identyfikator klienta i tajny klucz do mojej aplikacji. Najwyraźniej muszę korzystać z aplikacji internetowych, a nie konta usługi lub zainstalowanej aplikacji, ponieważ próbuję uzyskać dostęp do niektórych prywatnych danych użytkownika (dostęp do poczty e-mail), a nie tylko do usługi Google, i nie jestem samodzielną instalowaną aplikacją.

Nie ma miejsca, aby zgłosić ten identyfikator klienta w dowolnym miejscu gadżetu kontekstowego. Czy to rejestracja i zapomnienie?

Również (błąd?), uprawnienia pokazują mój identyfikator klienta w "koncie usługi", mimo że NIE utworzyłem poświadczeń konta usługi.

A następnie: nie wiem, jak wdrożyć mój gadżet kontekstowy (który nie jest samodzielną aplikacją) w mojej domenie z nowej wersji Developers Console. Wydaje się, że tylko opcje związane z rozmieszczaniem w chmurze są widoczne w widoku ogólnym, a karty Compute po lewej.

Kiedy próbuję wdrożyć z Aplikacji Extensions Console (który podobno nie jest przestarzała, tylko jest poprawa), otrzymuję ten błąd:

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) 

Co więcej, powrót przycisku na desce rozdzielczej do zabiera mnie do strona administrator domeny, która pozwala ani rozwoju, ani wdrożenie:

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

Nawiasem mówiąc, nigdy konsola Aplikacje Rozszerzenia uzyskuje dostęp do strony przekierowania stworzyłem, i nigdy nie czyta plik spec gadżetu na mojej stronie albo (nie dostępne przez google zgodnie z obietnicą), więc błąd mnie ssage musi być napisane, że plik manifest.xml nie używa OAuth 2.0 ... lub Apps Extensions Console nie używa go sam i wini mnie za to!

Więc, Gmail kontekstu aplikacji:

  • Nieaktualne?
  • Niemożliwe teraz?
  • Z autoryzacją OAuth 2.0? W jaki sposób?
+0

Czy sprawdzić to na blogu, który przechodzi przez pl wyjaśnienia przez przykład wykorzystania kontekstowe Gadżet Gmail : http://pipetree.com/qmacro/blog/2010/06/getting-started-with-gmail-contextual-gadgets/ – user3378649

+0

Spojrzałem na post. Post pochodzi z 2010 r., Czyli wcześniej niż OAuth 2.0, który jest teraz wymagany. –

Odpowiedz

4

Miał te same problemy, jak również. Ja (ledwo) udało mi się umieścić moje gadżety w wiadomościach e-mail mojej domeny, wykonując poniższe czynności. Oto, co mogę udostępnić;

1) Utworzono projekt za pomocą (https://console.developers.google.com). Przełączono na zestaw SDK Marketplace w menu bocznym nawigacji API. Po włączeniu przejdź na górę strony i kliknij "koła zębate przekładni" w Google Apps Marketplace SDK. Spowoduje to przejście do strony z linkiem do (Przejdź do oryginalnej konsoli). Kliknij w link.

2) Powinieneś zostać przekierowany na stronę formularza. Wypełnij wszystkie wymagane pola w formularzu. Sprawdź rozszerzenie COB i zadeklaruj swój identyfikator ekstraktora (użyłem ekstraktora z puszkami, nie przetestowałem go za pomocą niestandardowych ekstraktorów) pod polem tekstowym URL ekstraktora, adres URL gadżetu w polu tekstowym Adres gadżetu i wybierz zakresy. Kliknij przycisk Dodaj, a następnie przycisk Zapisz zmiany, gdy skończysz.

3) Przejdź do menu Dostęp API i utwórz identyfikator klienta OAuth 2.

Oto, gdzie kroki nie są dla mnie jasne, ale podzielę się tym, co zrobiłem, aby gadżety były dostępne w mojej domenie.

3) kliknąłem na przycisk Test przepływu Instalacja na górnej części formularza ..

4) dodałem użytkownika admin jako redaktor dla tego projektu.

5) Następnie musiałem się wylogować, wyczyścić pamięć podręczną, zalogować się jako użytkownik admin/domain, aby wyświetlić kontekstowy gadżet na dole wiadomości e-mail.

Mam nadzieję, że to pomoże.

+0

Przykro mi, że zrezygnowałem z aplikacji kontekstowych i przeniosłem się dalej. Zamierzałem kupić usługę pocztową Google dla mojej własnej strony internetowej, aby to przetestować, ale po kłopotach, które już minęły, postanowiłem nie płacić Google (i skończył się 30-dniowy okres testowy); nie ułatwiają rozwoju interfejsów API. Jeśli uda mi się przekonać mojego szefa, przetestuję Twoje rozwiązanie na stronie firmy, do której nie mam dostępu do zarządzania (może w najbliższy wtorek). –

0

wykonaj poniższe kroki :

  1. Zaloguj się do swojego administratora Gmail
  2. otwarty nową kartę i wpisać http://console.developers.google.com
  3. Kliknij sekcję interfejsu API na lewym panelu Gmaila.
  4. Wybierz następujące interfejsy API:
    . Gmail API:
    ii. Google Marketplace API
    iii. Kalendarz API
    iv. Google Admin SDK
  5. Po włączeniu wszystkich powyższych interfejsów API otwórz pakiet SDK Google Apps Marketplace i kliknij opcję Skonfiguruj łącze (musisz wygenerować identyfikator klienta)
  6. Wypełnij dane odpowiednimi danymi, musisz przesłać właściwy rozmiar obrazy również
  7. Wypełnij wszystkie wymagane pola i dodaj wyciągi zgodnie z sugestią Google.
    i) param name powinna być jak za kontekstowego API i wartości dla wszystkich jest „*” inaczej gadżet nie pojawią się w Gmailu
  8. Włącz URL usłudze powszechnej
  9. Włącz rozszerzenia COB
  10. dodać Gmaila Kontekstowe ekstraktory gadżetowe, możesz dodać wiele ekstraktorów do gadżetu, ale adres URL gadżetu powinien być taki sam dla wszystkich ekstraktorów. Można dodać wiele zakresów dla każdego ekstraktora.
  11. Zapisz wszystkie zmiany.

To wszystko!

Można poniższy link w celach: https://developers.google.com/apps-marketplace/preparing

5

Dokumentacja Google Contextual Gadgets jest zły joke- nieaktualne i błędne, nie trać czasu.

Odpowiedzi tutaj na SO przybliżyły mnie, ale nigdy tak naprawdę nie działałem.

Na szczęście skończyło się znalezieniem gmail.js, co pozwoliło mi napisać rozszerzenie Chrome, aby robić to, co potrzebne ...

1- Pobierz projekt Gmail Chrome Extension Boilerplate, który jest przykładem świat chrom Witam rozszerzenie za pomocą Gmaila. js.

2- Zaktualizuj główną funkcję w menu głównym.plik js do czegoś takiego:

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

To da ci to:

enter image description here

+0

Witam @ Yarin, możesz wyjaśnić, jak opublikować powyższe zmiany kodu wewnątrz Gmaila? –

Powiązane problemy