W tym dokumencie opisujemy kluczowe różnice między Email Settings API a Gmail API. Ten przewodnik pomoże Ci przenieść aplikację do interfejsu Gmail API.
Autoryzowanie zapytań
Podobnie jak interfejs Email Settings API, interfejs Gmail API używa protokołu OAuth 2.0 do autoryzowania żądań. Jedną z kluczowych różnic jest to, że uprawnienia interfejsu Gmail API są ograniczone do poszczególnych użytkowników, a nie do całej domeny. Oznacza to, że autoryzacja konta administratora domeny nie umożliwia przenoszenia poczty innych użytkowników w domenie. Zamiast tego musisz używać standardowych kont usługi z uprawnieniami w całej domenie, które znajdują się na białej liście w konsoli administracyjnej, aby wygenerować odpowiedni token uwierzytelniania.
Interfejs Email Settings API używał zakresu:
https://apps-apis.google.com/a/feeds/emailsettings/2.0/
Odpowiednie zakresy w interfejsie Gmail API to:
https://www.googleapis.com/auth/gmail.settings.basic
https://www.googleapis.com/auth/gmail.settings.sharing
Zmiany protokołu
Interfejs Email Settings API korzysta z protokołu GDATA opartego na XML. Interfejs Gmail API używa formatu JSON. Ustawienia składają się głównie z par klucz/wartość, więc ładunki są koncepcyjnie podobne w różnych wersjach.
Przykład tworzenia etykiety:
Email Settings API
POST https://apps-apis.google.com/a/feeds/emailsettings/2.0/{domain name}/{username}/label
<?xml version="1.0" encoding="utf-8"?>
<atom:entry xmlns:atom="http://www.w3.org/2005/Atom" xmlns:apps="http://schemas.google.com/apps/2006">
<apps:property name="label" value="status updates" />
</atom:entry>
Gmail API
POST https://www.googleapis.com/gmail/v1/users/{username}/labels
{
"name": "status updates"
}
Zamiast bezpośrednio wdrażać protokół, używaj udostępnionych bibliotek klienta.
Zarządzanie etykietami
Aby zarządzać etykietami w interfejsie Gmail API, użyj zasobu Labels.
Stare ustawienie | Nowe ustawienie | Uwagi |
---|---|---|
labelId | id | |
etykieta | nazwa | |
unreadCount | messagesUnread | |
widoczność | labelListVisibility | SHOW to teraz labelShow HIDE to teraz labelHide |
Inne zmiany:
- Podczas aktualizowania lub usuwania etykiet interfejs Gmail API odwołuje się do nich za pomocą identyfikatora, a nie nazwy.
Zarządzanie filtrami
Aby zarządzać filtrami w interfejsie Gmail API, użyj zasobu Filters.
Stare ustawienie | Nowe ustawienie | Uwagi |
---|---|---|
od | criteria.from | |
do | criteria.to | |
subject | criteria.subject | |
hasTheWord | criteria.query | |
doesNotHaveTheWord | criteria.negatedQuery | |
hasAttachment | criteria.hasAttachment | |
shouldArchive | action.removeLabelIds | Użyj INBOX jako identyfikatora etykiety. |
shouldMarkAsRead | action.removeLabelIds | Użyj UNREAD jako identyfikatora etykiety. |
shouldStar | action.addLabelIds | Użyj STARRED jako identyfikatora etykiety. |
etykieta | action.addLabelIds | Dodawanie za pomocą identyfikatora etykiety |
forwardTo | action.forward | |
shouldTrash | action.addLabelIds | Użyj TRASH jako identyfikatora etykiety. |
neverSpam | action.removeLabelIds | Użyj SPAM jako identyfikatora etykiety. |
Inne zmiany:
- Jeśli etykieta użytkownika nie istnieje, musisz ją utworzyć za pomocą metody labels.create.
Zarządzanie aliasami „Wyślij jako”
Aby zarządzać aliasami „Wyślij jako” w interfejsie Gmail API, użyj zasobu SendAs.
Stare ustawienie | Nowe ustawienie |
---|---|
nazwa | wyświetlanaNazwa |
adres | sendAsEmail |
replyTo | replyToAddress |
makeDefault | isDefault |
Zarządzanie klipami internetowymi
Ustawienia klipu internetowego nie są już dostępne w interfejsie API.
Zarządzanie ustawieniami automatycznego przekazywania dalej
Aby zarządzać automatycznym przekazywaniem dalej w interfejsie Gmail API, użyj zasobu Settings.
Stare ustawienie | Nowe ustawienie | Uwagi |
---|---|---|
włącz | włączone | |
forwardTo | emailAddress | |
działanie | dyspozycja | KEEP to teraz leaveInInbox ARCHIVE to teraz archive DELETE to teraz trash MARK_READ to teraz markRead |
Inne zmiany:
- Adresy przekazywania muszą zostać utworzone i zweryfikowane przed użyciem.
- Adresami do przekazywania dalej można zarządzać za pomocą zasobu ForwardingAddresses.
Zarządzanie ustawieniami POP
Aby zarządzać dostępem POP w interfejsie Gmail API, użyj zasobu Settings.
Stare ustawienie | Nowe ustawienie | Uwagi |
---|---|---|
włącz | accessWindow | Wyłączone, gdy ustawiona jest wartość disabled |
enableFor | accessWindow | ALL_MAIL to teraz allMail MAIL_FROM_NOW_ON to teraz fromNowOn |
działanie | dyspozycja | KEEP to teraz leaveInInbox ARCHIVE to teraz archive DELETE to teraz trash MARK_READ to teraz markRead |
Zarządzanie ustawieniami IMAP
Aby zarządzać dostępem IMAP w interfejsie Gmail API, użyj zasobu Settings.
Stare ustawienie | Nowe ustawienie |
---|---|
włącz | włączone |
Zarządzanie ustawieniami automatycznej odpowiedzi o nieobecności
Aby zarządzać automatyczną odpowiedzią o nieobecności w interfejsie Gmail API, użyj zasobu Settings.
Stare ustawienie | Nowe ustawienie |
---|---|
contactsOnly | restrictToContacts |
domainOnly | restrictToDomain |
włącz | enableAutoReply |
endDate | endTime |
wiadomość | responseBodyHtml responseBodyPlainText |
startDate | startTime |
subject | responseSubject |
Zarządzanie ustawieniami podpisu
Aby zarządzać podpisami e-maili w interfejsie Gmail API, użyj zasobu SendAs.
Stare ustawienie | Nowe ustawienie |
---|---|
podpis | podpis |
Inne zmiany:
- Podpisami zarządza się teraz w przypadku każdego aliasu.
Zarządzanie ustawieniami języka
Aby zarządzać ustawieniami języka w interfejsie Gmail API, użyj zasobu Settings.
Stare ustawienie | Nowe ustawienie |
---|---|
language | displayLanguage |
Więcej informacji znajdziesz w przewodniku po zarządzaniu ustawieniami języka.
Zarządzanie ustawieniami przekazywania dostępu
Aby zarządzać przekazywaniem dostępu w interfejsie Gmail API, użyj zasobu Delegates.
Stare ustawienie | Nowe ustawienie |
---|---|
adres | delegateEmail |
status | verificationStatus |
Inne zmiany:
- Ogólne
- Aby korzystać z dowolnej metody przekazywania dostępu (w tym delegates.create), użytkownik przekazujący dostęp musi mieć włączoną usługę Gmail. Oznacza to na przykład, że użytkownik delegujący nie może zostać zawieszony w Google Workspace.
- Aliasu e-mail nie można używać jako danych wejściowych adresu e-mail przedstawiciela w przypadku żadnej z nowych metod. Użytkownik delegowany musi być określony za pomocą podstawowego adresu e-mail.
- delegates.create
- Za pomocą tej metody można teraz tworzyć relacje delegowania w wielu domenach należących do tej samej Google Workspace organizacji.
- Ta metoda może być teraz używana w przypadku użytkowników, którzy muszą zmienić hasło przy następnym logowaniu.
- Jeśli operacja się uda, ta metoda zwróci w treści odpowiedzi zasób Users.settings.delegates zamiast pustej treści odpowiedzi.
- Jeśli delegujący lub delegowany użytkownik jest wyłączony (np. zawieszony w Google Workspace), ta metoda zwraca błąd HTTP 4XX zamiast błędu HTTP 500.
- delegates.delete
- Ta metoda może być teraz używana do usuwania delegatów z dowolnym verificationStatus, a nie tylko tych, którzy mają status
accepted
lubexpired
.
- Ta metoda może być teraz używana do usuwania delegatów z dowolnym verificationStatus, a nie tylko tych, którzy mają status
- delegates.get
- Jest to nowa metoda, która w zależności od potrzeb może być lepsza niż metoda delegates.list.
Zarządzanie ustawieniami ogólnymi
Ustawienia ogólne nie są już dostępne w interfejsie API.