Gmail API Anahtarı vs OAuth: Neden OAuth'u Atlayamazsınız (ve Bunun Yerine Ne Kullanmalısınız)

Unipile - İçindekiler
Unipile - Gmail API Kahramanı
Gmail API Kimlik Doğrulaması

Gmail API Anahtarı vs OAuthOAuth'u Neden Atlayamazsınız

Google API anahtarı ile Gmail'e erişebilir misiniz? Kısa cevap: hayır. Gmail API'si özel kullanıcı verilerine eriştiği için her istekte OAuth 2.0 aracılığıyla kullanıcının açık rızası gereklidir. Bu kılavuz, API anahtarını denerseniz göreceğiniz hatayı, bugün mevcut olan 3 gerçek kimlik doğrulama yolunu ve 3 satır kodla bir Gmail posta kutusuna nasıl bağlanacağınızı ele almaktadır birleşik e-posta API'si.

İnşa etmeye başla Gmail API kılavuzu
gmail-auth.js
// Gmail API Anahtarı mı OAuth mu - karar // ---------------------------------------- // YANLIŞ: API anahtarı Gmail ile ÇALIŞMIYOR const Res = bekliyor fetch( `https://gmail.googleapis.com/gmail/v1/ users/me/messages?anahtar=SENIN_API_ANAHTARIN` ); // Döndürür: 401 Giriş Gerekli OAuth 2.0 erişim belirteci const Res = bekliyor fetch( 'https://gmail.googleapis.com/gmail/v1/users/me/messages', { headers: { 'Authorization': Taşıyıcı ${erişimJetonu}` } } ); // VEYA OAuth'u tamamen atlayın - Unipile kullanın const e-postalar = bekliyor unipile.e-posta.list( { hesapId: 'bağlı-hesap-kimliği' } );
OAuth yordam kodu yok - Unipile sizin için belirteçleri yönetir
İle çalışır Gmail Görünüm IMAP
Kısa Cevap

Gmail API ile API Anahtarı Kullanabilir Misiniz?

Daha önce Google Cloud üzerinde bir şeyler geliştirdiyseniz, Haritalar veya Çeviri için API anahtarlarının gayet iyi çalıştığını bilirsiniz. Bu nedenle Gmail ile de aynı yaklaşımı denemek doğal olacaktır. Ancak işler yolunda gitmeyecek. Tam olarak neler olacağını ve nedenini açıklıyoruz - ayrıca derinlemesine dalmadan önce iki cümlelik özetini de veriyoruz.

Karar

Hayır. Google API anahtarları Gmail API'sine karşı kimlik doğrulayamaz. Gmail, açık kullanıcı rızası gerektiren özel kullanıcı verilerine OAuth 2.0 aracılığıyla erişir. Gmail uç noktalarından herhangi birinde bir API anahtarını OAuth erişim jetonuyla değiştirmeyi sağlayan hiçbir bayrak, hiçbir başlık, hiçbir çözüm yoktur. Gmail API'si şöyle bir yanıt dönecektir: 401 Giriş Gerekli veya Kimlik doğrulanmamış kullanım için günlük 403 limit aşıldı Her seferinde hata.

terminal - API anahtarı denemesi
API anahtarı ile # İsteği GET /gmail/v1/kullanıcılar/ben/mesajlar ?anahtar=AIzaSy... # Yanıtı HTTP/1.1 401 Yetkilendirilmemiş { "hata": { "kod": 401, "message": "Giriş Gerekli", "status": " kimliği Doğrulanmamış" } }
401 Giriş Gerekli - API anahtarı reddedildi
terminal - kimliği doğrulanmamış kota aşıldı
# Kimlik doğrulaması yapılmamış aramaların tekrar tekrar yapılmasının ardından GET /gmail/v1/kullanıcılar/ben/mesajlar ?anahtar=AIzaSy... # Yanıtı HTTP/1.1 403 Yasaklanmış { "hata": { "kod": 403, "mesaj": "Kimliksiz Kullanım İçin Günlük Limit Aşıldı", "durum": "KAYNAK_TÜKENDİ" } }
403 Kimliği Doğrulanmamış Kota Aşıldı

API Anahtarı - Yalnızca herkese açık veriler için geçerlidir

Bir API anahtarı, faturalandırma ve kota için Google Cloud projenizi tanımlar. Kullanıcı hesaplarına dokunmayan genel API'lerle (Haritalar, Çeviri, YouTube genel verileri) çalışır. Gmail asla genel veri değildir.

OAuth 2.0 - Gmail API İçin Gereklidir

OAuth 2.0, kullanıcı açıkça onay verdikten sonra kullanıcıya özel bir erişim belirteci üretir. Gmail API, hem kullanıcının kimliğini hem de onaylanan erişimin kapsamını doğrulamak için her istekte bu belirteci okur. Geçerli bir erişim belirteci yoksa yanıt da olmaz.

Kavramlar

Bir API Anahtarının Google Cloud'da Gerçekten Ne İşe Yaradığı (ve Yaramadığı)

API anahtarları ve OAuth jetonları, iki farklı sorunu çözen iki ayrı mekanizmadır. Google API'lerine başlarken bunları karıştırmak en yaygın hatalardan biridir. İşte net ayrım.

Hangi API anahtarları çalışır

Google Haritalar Platformu - Coğrafi Kodlama, Yönler, Yerler (kullanıcı hesabı gerekmez)

Bulut Çeviri API - Metin çevirme, dil algılama

YouTube Veri API'si - Genel video meta verilerini, kanalları, oynatma listelerini okuma

Bulut Görseli / Doğal Dil - Yüklediğiniz içeriği işleyen yapay zeka API'leri

Faturalama + Kota takibi - Tüm API anahtar kullanımları projenize göre ölçülür

API anahtarlarının YAPAMAYACAĞI şeyler

Gmail API - Bir kullanıcının posta kutusunu okuma, gönderme veya yönetme

Google Takvim API'si - Kullanıcının takvim etkinliklerini okuma veya yazma

Google Drive API - Bir kullanıcının dosyalarına erişme, yükleme veya listeleme

Google Workspace Yönetici SDK'sı - Bir alan üzerindeki yönetici kapsamlı herhangi bir işlem

İnsanlar API (kullanıcı verileri) Kullanıcının kişi bilgilerine veya profiline erişen herhangi bir uç nokta

Kural basit: Bir API, kullanıcının hesap verilerine erişiyorsa, Google kullanıcının OAuth 2.0 aracılığıyla kimliğini doğrulaması gerektirir. API anahtarları kullanıcı kimlik bilgileri değil, proje kimlik bilgileridir. Gmail API her zaman kullanıcı verilerine erişir. İstisnası yoktur. Bu kural, uygulamanızın herkese açık veya şirket içi olmasına bakılmaksızın geçerlidir.

Mimarlık

Gmail Neden OAuth 2.0 Gerektiriyor

OAuth 2.0, yavaşlatmak için Google'ın icat ettiği bürokratik bir engel değildir. Özel kullanıcı verilerine kapsamlı, geri alınabilir, denetlenebilir erişim sağlamanın tek teknik olarak sağlam yoludur. Gmail'in üç temel gereksinimi, bir API anahtarının neden asla yerine geçemeyeceğini açıklamaktadır.

01

Kullanıcı rızası pazarlık konusu değildir

Gmail verileri, uygulamanıza değil, kullanıcıya aittir. OAuth 2.0, kullanıcının açıkça "evet, bu uygulama gelen kutumu okuyabilir" dediği mekanizmadır. Onay akışı yoksa erişim de yoktur. Bu, sadece teknik bir kısıtlama değil, GDPR ve Google platform politikaları kapsamında yasal bir gerekliliktir.

02

Kapsamlı, geri alınabilir erişim

OAuth jetonları, uygulamanın neler yapabileceğini ve yapamayacağını (yalnızca okuma, gönderme, tam erişim) kesin olarak belirten kapsamlar içerir. Kullanıcılar, tam olarak hangi erişimi verdiklerini görebilir ve Google Hesapları ayarlarından istedikleri zaman bu erişimi iptal edebilirler. Bir API anahtarı hiçbir şey sağlamaz ve kullanıcı düzeyinde hiçbir şeyi iptal edemez.

03

Token süresi dolumu kullanıcıları korur

Gmail API erişim belirteçleri süresi dolar (genellikle 1 saat). Bu, çalınan bir belirtecin kısa bir süre sonra işe yaramaz hale geleceği anlamına gelir. Uygulamanız, belirteki iptal edilebilen bir yenileme belirteci kullanarak sessizce yenilemelidir. API anahtarları ise, kullanıcı düzeyinde iptal mekanizması olmayan, uzun ömürlü proje kimlik bilgileridir.

Önemli: Temel Kimlik Doğrulama Eylül 2024'te kullanımdan kaldırılıyor

Google, Gmail için kullanıcı adı/şifre kimlik doğrulamasını ("Temel Kimlik Doğrulama") kullanımdan kaldırdı Eylül 2024. Depolanan kimlik bilgilerini doğrudan kullanan eski entegrasyonlarınız varsa artık çalışmamaktadır. Gmail API için hem yeni hem de geçirilen entegrasyonlarda kalan tek kimlik doğrulama mekanizması OAuth 2.0'dir. Google'un resmi duyurusunu gör.

SaaS'ınızda birden fazla Gmail hesabı için OAuth işlemleri yapmanız mı gerekiyor? Unipile, her bağlı hesap için onay ekranını, jeton değişimini ve sessiz yenilemeyi yönetir - böylece kodunuz asla bir jetonla temas etmez.

Unipile ile oluşturun
Unipile - Gmail Kimlik Doğrulama Karşılaştırması
Karşılaştırma

Gmail API için 3 Gerçek Kimlik Doğrulama Yolu

OAuth'un kaçınılmaz olduğunu kabul ettiğinizde, soru şu hale gelir: Kullanım durumunuza hangi OAuth yolu uyuyor? Mimari olarak farklı üç seçenek vardır - her biri karmaşıklık, kullanıcı kapsamı ve bakım yükü açısından farklı ödünleşimlere sahiptir.

Kriter OAuth 2.0 İstemci Kimliği (3 aşamalı) Servis Hesabı + DWD Birleşik API (Unipile)
Kullanıcı onayı gerekli mi? Evet - kullanıcı başına Hayır (yönetici devrediyor) Evet - Unipile Kullanıcı Arayüzü aracılığıyla
Kişisel Gmail ile çalışır mı? Evet Hayır (Yalnızca Çalışma Alanı) Evet
Çok kiracılı SaaS Evet Aynı Çalışma Alanı Evet, bunun için üretildi
D token yönetimi Kodunuz, jetonları depolar ve yeniler.
Bakım gerektiren
Hizmet hesabı JSON anahtarı
Yönetici tarafından yönetilen
Unipile tüm belirteçleri işler
Sıfır bakım
Google onay ekranı incelemesi? Gerekli (hassas kapsamlar) Yalnızca yönetici yapılandırması Gerekli değil
Ayrıca Outlook + IMAP destekliyor mu? Yalnız Gmail Yalnızca Gmail/Workspace Gmail, Outlook, IMAP
İlk e-posta okuma süresi 2-4 saat kurulum
OAuth uygulaması + kapsamlar + onay ekranı
1-2 saat kurulum
Çalışma alanı yöneticisi gerekli
15 dakikanın altında
API anahtarı + bağlı hesap
En iyisi Harici kullanıcıların Gmail'ine bağlanan SaaS uygulamaları Kuruluşunuz İçin Kurumsal Çalışma Alanı Araçları Herhangi bir e-posta API kullanım durumu - OAuth işlemleri yok
OAuth 2.0 İstemci Kimliği (3 aşamalı)
Kullanıcı onayı gerekli mi? Evet - kullanıcı başına
Kişisel Gmail ile çalışır mı? Evet
Çok kiracılı SaaS Evet
D token yönetimi Kodunuz, jetonları depolar ve yeniler.
Bakım gerektiren
Google onay ekranı incelemesi? Gerekli (hassas kapsamlar)
Ayrıca Outlook + IMAP destekliyor mu? Yalnız Gmail
İlk e-posta okuma süresi 2-4 saat kurulum
OAuth uygulaması + kapsamlar + onay ekranı
En iyisi Harici kullanıcıların Gmail'ine bağlanan SaaS uygulamaları
Servis Hesabı + DWD
Kullanıcı onayı gerekli mi? Hayır (yönetici devrediyor)
Kişisel Gmail ile çalışır mı? Hayır (Yalnızca Çalışma Alanı)
Çok kiracılı SaaS Aynı Çalışma Alanı
D token yönetimi Hizmet hesabı JSON anahtarı
Yönetici tarafından yönetilen
Google onay ekranı incelemesi? Yalnızca yönetici yapılandırması
Ayrıca Outlook + IMAP destekliyor mu? Yalnızca Gmail/Workspace
İlk e-posta okuma süresi 1-2 saat kurulum
Çalışma alanı yöneticisi gerekli
En iyisi Kuruluşunuz İçin Kurumsal Çalışma Alanı Araçları
Birleşik API (Unipile)
Tavsiye edilir
Kullanıcı onayı gerekli mi? Evet - Unipile Kullanıcı Arayüzü aracılığıyla
Kişisel Gmail ile çalışır mı? Evet
Çok kiracılı SaaS Evet, bunun için üretildi
D token yönetimi Unipile tüm belirteçleri işler
Sıfır bakım
Google onay ekranı incelemesi? Gerekli değil
Ayrıca Outlook + IMAP destekliyor mu? Gmail, Outlook, IMAP
İlk e-posta okuma süresi 15 dakikanın altında
API anahtarı + bağlı hesap
En iyisi Herhangi bir e-posta API kullanım durumu - OAuth işlemleri yok
Yol 1/3

Yol 1 - OAuth 2.0 İstemci Kimliği (Çok Kiracılı SaaS)

Kendi Gmail hesaplarını bağlayan müşterilerinizle bir SaaS ürünü oluşturuyorsanız, OAuth 2.0 yetkilendirme kodu akışı standart yoldur. Bu, 3 bacaklı akıştır: uygulamanız, Google ve son kullanıcı. Hassas kapsamlar için bir Google Cloud projesi ayarlamayı ve onay ekranı doğrulama sürecinden geçmeyi gerektirir. Derinlemesine incelemek için E-posta API'leri için OAuth akışı ayrıntılı olarak, özel kılavuzumuza bakın.

01

Google Cloud Console'da OAuth 2.0 kimlik bilgileri oluşturun

API'ler ve Hizmetler > Kimlik Bilgileri > Kimlik Bilgileri Oluştur > OAuth istemci kimliği'ne gidin. "Web uygulaması"nı seçin. Uygulamanız için yetkili yönlendirme URI'lerini yapılandırın. Bu, sizin için şunu oluşturacaktır client_id ve client_secret.

02

Gmail API'yi etkinleştirin ve kapsamlarınızı bildirin

APIs ve Hizmetleri > OAuth rozet ekranı'na gidin. İhtiyacınız olan Gmail kapsamlarını ekleyin (örneğin. gmail.yalnızcaoku, gmail.gönderHassas ve kısıtlı kapsamlar Google doğrulaması gerektirir; bu süreç günler hatta haftalar sürebilir.

03

Kullanıcıları Google'ın yetkilendirme URL'sine yönlendirin

Kullanıcı uygulamanızda "Gmail Bağlan" düğmesine tıkladığında, sizi Google'a yönlendirecektir. client_id, kapsamlar ve yönlendirme_url'si. Onay verdikten sonra Google, yönlendirme URI'nize bir yetkilendirme kodu gönderir.

04

Kodları jetonlarla değiştirin ve yenileme jetonunu saklayın

Yetkilendirme kodunu Google'ın belirteç uç noktasına POST edin. Bir şey alacaksınız erişim_belirteci (yaklaşık 1 saat sonra sona erer) ve bir yenileme_belirteci (uzun ömürlü). Yenileme belirtecini güvenli bir şekilde saklayın; bu, kullanıcıya yeniden sormadan yeni erişim belirteçleri almanızı sağlar.

gmail-oauth-akışı.js
const { google } = require('googleapis'); const oauth2İstemci = yeni google.yetki.OAuth2( process.env.GMAIL_CLIENT_ID, process.env.GMAIL_CLIENT_SECRET, process.env.GMAIL_YENIDENYONLENDIRME_URI ); // Adım 1: Yetkilendirme URL'sini oluştur const authUrl = oauth2Müvekkil.generateAuthUrl({ erişim_türü: 'çevrimdışı', // yenileme jetonu al kapsam: [ 'https://www.googleapis.com/auth/gmail.readonly', 'https://www.googleapis.com/auth/gmail.send' ] }); // Adım 2: Kodları jetonlarla değiştirin (geri çağırma işleyicinizde) async function Geri Çağrı Yap(kod) { const { jetonlar } = bekliyor oauth2Müvekkil.token al(kod); oauth2Müvekkil.kimlik bilgilerini ayarla(belirteçler); // Tokenları.refresh_token'ı veritabanında güvenli bir şekilde saklayın return jetonlar; } // Adım 3: Erişim jetonunu Gmail API'sini çağırmak için kullanın async function mesajları listele(accessToken) { const gmail = google.gmail({ sürüm: 'v1', yetkilendirme: oauth2Client }); const Res = bekliyor gmail.users.messages.list{userId: 'ben' }); return res.data.mesajlar; }

Yenileme jetonlarını büyük ölçekte yönetmek, #1'in en büyük zorluğu kendi yönettiğiniz Gmail OAuth'unda. Token rotasyonu, veritabanı geçişleri, süresi dolmuş tokenlar için sessiz hatalar - bunların hepsi, kullandığınızda otomatik olarak halledilir birleşik e-posta API sağlayıcısı.

Gmail entegrasyonunuzu oluşturun
Unipile - Yol 2 Servis Hesabı
Yol 2/3

Yol 2 - Hizmet Hesabı + Etki Alanı Geniş Kapsamlı Yetkilendirme (Workspace Dahili)

Kullanım senaryonuz bir Google Workspace kuruluşuna dahili ise - dahili araçlar, İK otomasyonu veya şirket genelinde bir e-posta analiz panosu düşünün - Alan genelinde Yetkilendirme'ye (DWD) sahip hizmet hesapları, kullanıcı başına onay akışları olmadan posta kutularına erişmenizi sağlar. Bir Workspace yöneticisi yetkilendirmeyi bir kez verir. Kritik uyarı: Bu yol kişisel Gmail adresleri için çalışmaz.

Sert sınır - başlamadan önce oku

Hizmet hesapları kişisel Gmail hesaplarına (@gmail.com) erişemez. DWD yalnızca bir Google Workspace alanında çalışır. Kullanıcılarınız kişisel Gmail adresleriyle kaydolursa, Yol 1'i (OAuth İstemci Kimliği) veya Yol 3'ü (Birleşik API) kullanmalısınız. Kişisel bir hesapta DWD denemesi 403 hatası verir.

Çalışma alanı yöneticisi gerekli: DWD'nin, admin.google.com adresinden bir Google Workspace yöneticisi tarafından yapılandırılması gerekir. Yönetici erişiminiz olmadan bir geliştirici olarak bunu yapamazsınız.

JSON anahtar güvenliği: Servis hesabı JSON anahtarı uzun ömürlü bir kimlik bilgisi. Özel bir anahtar gibi davranın - düzenli olarak döndürün ve asla kaynak denetimine COMMIT yapmayın.

Kapsam bildirimi gerekli: Yönetici, DWD kurulumu sırasında her Gmail kapsamını açıkça onaylamalıdır. Kapsamları çalışma zamanında talep edemezsiniz. Bkz. Google'ın DWD kılavuzu.

gmail-hesap-servisi.py
itibaren google.oauth2 İthalat servis_hesabı itibaren googleapiclient.discovery İthalat inşa etmek # Hizmet hesabınızın JSON anahtarına giden yol HİZMET_HESABI_DOSYASI = 'service-account.json' KOŞULLAR = [ 'https://www.googleapis.com/auth/gmail.readonly' ] # Çalışma Alanı etki alanınızda bir kullanıcı kimliğine bürünme # (Etki Alanı Çapında Yetki Devri, yönetici tarafından etkinleştirilmelidir) fonksiyon gmail_servisi_al(kullanici_eposta): kimlik bilgileri = service_account.Credentials.servis_hesabından_dosya( HİZMET_HESABI_DOSYASI, kapsamlar=KOŞULLAR ) # Bu, etki alanı genelinde yetki devri: kullanıcı kimliğine bürünme devredilmiş_kimlik bilgileri = kimlik bilgileri.konu_ile(kullanıcı_e-postası) return inşa etmek('gmail', 'v1', kimlik bilgileri=devredilen_kimlikler) # Bir Çalışma Alanı kullanıcısının mesajlarını listele hizmet = gmail_servisi_al('alice@yourcompany.com') Sonuçlar = service.users().messages().list( kullanıcıId='ben' ).yürüt()
Yalnızca Workspace kullanıcıleri için çalışır - asla kişisel @gmail.com hesapları için değil
Unipile - Yol 3 Birleşik API
Yol 3/3 - Önerilen

Yol 3 - Birleştirilmiş E-posta API'si (OAuth Artık Kodundan Kaçının)

Eğer bir üretim SaaS uygulamasında e-posta okumak, göndermek veya senkronize etmek istiyorsanız ve OAuth altyapısını yönetmek için mühendislik kaynakları harcamak istemiyorsanız, Unipile gibi birleşik bir e-posta API'si tüm kimlik doğrulama katmanını soyutlar. Anlayın E-posta senkronizasyonu arka planda nasıl çalışır, veya doğrudan koda gidin. Bu yaklaşım ayrıca size tek bir API altında Gmail, Outlook ve IMAP'ı sunar - her sağlayıcı için ayrı entegrasyona gerek kalmaz.

Google Cloud kurulumu gerekmez

Google'dan yetkilendirme ekranı, kapsam incelemesi yok. Unipile'ın doğrulanmış OAuth uygulaması kullanıcı yetkilendirmesini halleder.

Otomatik jeton döndürme

Erişim belirteçleri ve yenileme belirteçleri tamamen Unipile tarafından yönetilir. Veritabanınız hiçbir Google OAuth belirteci saklamaz.

Gmail + Outlook + IMAP ile çalışır

Tek bir API, üç sağlayıcı evreni. Siz E-posta senkronizasyon API sağlayıcılarını karşılaştırın, sağlayıcılar arası destek önemli bir farklılaştırıcıdır.

Yeni iletilerde webhook teslimatı

Unipile, bağlı her hesap için Gmail API'sini yoklamak yerine, yeni e-posta olaylarını gerçek zamanlı olarak webhook uç noktanıza iletir.

Desteklenen sağlayıcılar: Gmail Görünüm IMAP
unipile-gmail.js
// Unipile üzerinden bir Gmail posta kutusunu okumak için 3 satır OAuth kurulumu yok, token yönetimi yok const { UnipileClient } = require('unipile-node-sdk'); const müşteri = yeni UnipileClient({ token: process.env.UNIPILE_API_KEY }); // Bağlı bir Gmail hesabındaki e-postaları listele // accountId = Unipile bağlantılı hesap kimliği const e-postalar = bekliyor client.email.mesajları listele({ account_id: 'bağlı-hesap-kimliği', Limit: 20 }); // Bağlı hesap adına e-posta gönder bekliyor client.email.gönder({ account_id: 'bağlı-hesap-kimliği', to: 'recipient@example.com', Konu: 'Unipile'dan merhaba', body: 'Görünürde OAuth belirteci yok.' }); // Outlook ve IMAP için aynı şekilde çalışır // Sadece hesap_kimliğini değiştir
Gmail, Outlook ve IMAP bağlantılı hesaplar için aynı kod

OAuth operasyonları olmadan Gmail entegrasyonunuzu oluşturun

Başlat Gmail API entegrasyonu için eksiksiz kılavuz, ardından kimlik doğrulama ve senkronizasyon katmanı olarak Unipile ile dağıtın.

İnşa etmeye başla Belgelere göz atın
Sorun giderme

Gmail'de API Anahtarı Kullanmaya Çalışırken Yapılan Yaygın Hatalar

Gmail API çağrınız başarısız olduğu için bu makaleye ulaştıysanız, burada karşılaşacağınız iki hata ve her birinin tam olarak ne anlama geldiği yer almaktadır - ham yanıt gövdesi ile birlikte bunları anında tanıyabilmeniz için.

HTTP 401 Giriş Gerekli / Doğrulanmamış
Buna ne sebep olur

Bir API anahtarıyla Gmail API'sine bir istek gönderdiniz?anahtar=AIza...) veya hiç yetkilendirme olmadan. Gmail API, geçerli bir OAuth 2.0 erişim belirteci gerektirir Yetkilendirme: Bearer başlık. Bu göreceğiniz ilk hatadır API anahtarını ilk kez denerken.

Düzelt: Yukarıdaki 3 kimlik doğrulama yolundan birini uygulayın. API anahtarı çözüm değil - bir OAuth erişim belirtecine ihtiyacınız var.

HTTP/1.1 401 Yetkilendirilmemiş İçerik-Türü: uygulama/json { "hata": { "kod": 401, "mesaj": "İstek, gerekli kimlik doğrulama kimlik bilgilerini eksik. OAuth 2 erişim jetonu, oturum çerezi veya geçerli başka bir kimlik doğrulama kimlik bilgisi bekleniyor. Bkz. https://developers.google.com/identity/sign-in/web/...", "durum": "DOĞRULANAMADI", "hatalar": [{ "mesaj": "Oturum Gerekli", "alan": "googleapis.com", "neden": "gerekli", "konum": "Authorization", "konumTipi": "header" }] } }
HTTP 403 Kimlik doğrulanmamış kullanım için günlük sınır aşıldı
Buna ne sebep olur

Tekrarlanan kimliği doğrulanmamış isteklerden sonra (API anahtarı ile bile), Google'ın kota sistemi IP'nizden veya projenizden gelen kimliği doğrulanmamış daha fazla çağrıyı engeller. Bu, kimliği doğrulanmış kullanıcılar için bir hız sınırı değildir - özellikle şunu ifade eder İstekleriniz hiçbir zaman onaylanmadı. ve anonim çağrılar için küçük ücretsiz kota hakkınızı doldurdunuz.

Düzelt: Yukarıdakiyle aynı - API anahtar yaklaşımınız asla işe yaramaz. OAuth 2.0 erişim belirteçlerini kullanın. İstekleriniz geçerli bir Bearer jetonu taşıdığında bu hata kaybolacaktır.

HTTP/1.1 403 Yasaklanmış İçerik-Türü: uygulama/json { "hata": { "kod": 403, "mesaj": "Kimliği Doğrulanmamış Kullanım İçin Günlük Limit Aşıldı. Devam eden kullanım için kayıt gereklidir.", "durum": "KAYNAK_TÜKENDİ", "hatalar": [{ "mesaj": "Kimliği Doğrulanmamış Kullanım İçin Günlük Limit Aşıldı.", "alan": "kullanımSınırları", "neden": "gunlukLimitAsildiKayitsiz" }] } }
Referans

Gerçekten İhtiyacınız Olacak Gmail API Kapsamları

OAuth'un gerekli olduğunu kabul ettikten sonra, kapsam seçimi bir sonraki kritik karardır. Google, Gmail kapsamlarını ortaya çıkardıkları verinin hassasiyetine göre üç kategoriye ayırır. İhtiyacınızdan fazlasını istemek daha uzun bir doğrulama sürecini tetikler ve bazı durumlarda Google tarafından tam bir güvenlik değerlendirmesini gerektirir.

Kapsam doğrulama aşamaları

Hassas kapsamlar (sarı) Google'dan OAuth onay ekranınızı incelemesini ve uygulamanızın gizlilik politikasını doğrulamasını isteyin. Kısıtlı kapsamlar (kırmızı) resmi bir güvenlik değerlendirmesi, bir video gösterimi ve bazen de üçüncü taraf bir güvenlik denetimi gerektirir. Kısıtlı kapsam onayı için minimum 2-6 hafta planlayın. Kimlik doğrulama katmanınız olarak Unipile kullanırsanız, bu doğrulama süreci uygulamanız değil, Unipile'a aittir.

Kapsam Erişim Seviyesi Katman Kullanım Örneği
gmail.yalnızcaoku Tüm mesajları, iş parçacıklarını, etiketleri, ayarları oku Hassas E-posta analitiği, gelen kutusu denetim araçları, CRM senkronizasyonu (sadece okuma)
gmail.gönder Kullanıcı adına e-posta gönder Hassas İşlemsel kullanıcı tarafı e-postaları, CRM takip e-postaları, erişim araçları
gmail.olustur Taslakları oluştur, oku, güncelle, sil; mesaj gönder Hassas E-posta oluşturucu entegrasyonları, taslak yönetimi
gmail.değiştir Oku, gönder, değiştir (etiketler, arşivle) - silme yok Kısıtlı Tam gelen kutusu yönetimi, yazma ile CRM senkronizasyonu, arşivleme iş akışları
mail.google.com Tam erişim - oku, yaz, sil, ayarlar Kısıtlı Tam özellikli e-posta istemcileri, yedekleme araçları, yönetici geçişi
gmail.metaveri Yalnızca mesaj meta verileri (gövde yok) Hassas değil E-posta hacmi, gönderici/alıcı kalıpları (içerik olmadan) üzerinde analiz

Gmail.modify veya mail.google.com'a ihtiyaç duyan çok kiracılı bir SaaS oluşturmak mı? Kısıtlı kapsam incelemesi, lansman zaman çizelgenize haftalar ekler. Unipile ile onay ekranı incelemesini tamamen atlar, Unipile'ın doğrulanmış OAuth uygulaması entegrasyonunuzun ihtiyaç duyduğu kapsamları kapsar.

Unipile ile inşa edin
Karar Rehberi

Karar Ağacı: Kullanım Durumunuz İçin Hangi Kimlik Doğrulama Yöntemi?

Sorulara vereceğiniz üç yanıtla projeniz için hangi Gmail API kimlik doğrulama yolunun geçerli olduğunu tam olarak öğreneceksiniz. Evrensel bir cevap yok - her yol farklı bir sorunu çözüyor. Tam bilgi için Gmail API entegrasyonu için eksiksiz kılavuz, Gmail hub'ına devam edin. Outlook / Microsoft 365 karşılığı, Microsoft Graph OAuth kılavuzumuza bakın.

Kullanım senaryosu A

Müşterilerin kendi Gmail hesaplarını bağladığı bir SaaS uygulaması

Kullanıcılarınız harici mi (çalışanlarınız değil mi)?

Evet - bunlar kişisel Gmail veya Google Workspace hesaplarına sahip müşterilerinizdir.

Birçok farklı Google alanını desteklemeniz gerekiyor mu?

Evet - çoklu kiracı. Her kullanıcı kendi hesabını bağlar.

Önerilen yol Yol 1 - OAuth İstemci Kimliği

Veya OAuth altyapısını tamamen atlamak için Yol 3 (Birleşik API).

Kullanım örneği B

Kendi Google Workspace kuruluşunuz için dahili araç

Tüm kullanıcılar aynı Workspace alan adında mı (çalışanlarınız mı)?

Evet - yalnızca company.com hesapları. Harici Gmail kullanıcıları kabul edilmez.

DWD'yi yapılandırabilen bir Workspace yöneticiniz var mı?

Evet - yönetici erişimi admin.google.com adresinde mevcuttur.

Önerilen yol Yol 2 - Hizmet Hesabı + DWD

Kullanıcı başına onay akışı yok. Yönetici bir kez yetki verir.

Kullanım Senaryosu C - En Yaygın

Tek bir API altında Gmail + Outlook + IMAP ihtiyacı olan SaaS uygulaması

Kullanıcılarınızın Gmail, Outlook ve IMAP hesapları karışık mı?

Evet - her kullanıcının hangi sağlayıcıya bağlanacağını tahmin edemezsiniz.

Sağlayıcı başına ayrı OAuth entegrasyonlarını çalıştırmaktan kaçınmak ister misiniz?

Evet - Google OAuth + Microsoft OAuth + IMAP yönetimi çok fazla karmaşıklık.

Önerilen yol Yol 3 - Birleşik API (Unipile)

Tek bir API anahtarı. Gmail, Outlook, IMAP. OAuth işlemleri yok.

Gmail entegrasyonunuzu bugün oluşturmaya başlayın

Hangi yolu seçerseniz seçin, Unipile size bir Birleşik e-posta API genel bakışı Bir yaklaşıma bağlı kalmadan önce mimariyi anlamak için. Veya doğrudan kontrol paneline gidin ve ilk hesabınızı dakikalar içinde bağlayın.

Unipile ile oluşturun Belgeleri oku
SSS

Sıkça Sorulan Sorular

Gmail API kimlik doğrulaması, API anahtarları ile OAuth belirteçleri arasındaki farklar ve OAuth'ı kendiniz yönetmeden Gmail'e programlı olarak erişme hakkında en sık sorulan sorular.

01

Gmail'e erişmek için bir Google API anahtarı kullanabilir miyim?

Hayır. Google API tuşları yalnızca Haritalar, Çeviri veya YouTube Verileri (herkese açık içerik) gibi herkese açık, kullanıcıya özgü olmayan API'ler için çalışır. Gmail API erişimleri özel kullanıcı posta kutusu verileri, OAuth 2.0 aracılığıyla açık kullanıcı onayı gerektiren. API anahtarıyla Gmail API'sine bir istek göndermek bir hata döndürür 401 Giriş Gerekli veya Kimlik doğrulanmamış kullanım için günlük 403 limit aşıldı hata - her zaman, istisnasız.

02

Gmail API OAuth 2.0 gerektirir mi?

Evet, her zaman. Gmail API erişimi kullanıcı verilerine erişimdir, bu da her isteğin OAuth 2.0 akışı aracılığıyla izin vermiş kimliği doğrulanmış bir kullanıcıya bağlı olması gerektiği anlamına gelir. Bunun bir çözümü yoktur: API anahtarı yok, temel kimlik doğrulama yok (Eylül 2024'te kullanımdan kaldırıldı), sihirli bir başlık yok. Desteklenen üç kimlik doğrulama yolu şunlardır: OAuth 2.0 İstemci Kimliği (çok kiracılı), Etki Alanı Geniş Yetkilendirmeye Sahip Hizmet Hesabı (yalnızca Workspace) ve sizin için OAuth katmanını yöneten Unipile gibi birleşik bir e-posta API'si.

03

Google Cloud'da API anahtarı ile OAuth istemci kimliği arasındaki fark nedir?

Bir API anahtarı Faturalandırma ve kota amaçlı Google Cloud projenizi tanımlar. Yalnızca genel veriler sunan API'ler (Haritalar, Çeviri vb.) için çalışır. Bir OAuth istemci kimliği kullanıcı, uygulamalarınızın hesabınıza erişmesini onayladığı bir izin akışını başlatmak için kullanılır. OAuth istemci kimliği, Gmail API'nin aslında kabul ettiği erişim belirtecini ve yenileme belirtecini oluşturur. Bunlar tamamen farklı iki mekanizmadır: biri bir projeyi tanımlarken, diğeri bir kullanıcıyı kimliğini doğrular.

04

Bir hizmet hesabı kullanıcı rızası olmadan Gmail'i okuyabilir mi?

Sadece eğer Alan Geneli Yetkilendirme (DWD) bir Google Workspace yöneticisi tarafından etkinleştirilir. Hizmet hesabı tek başına hiçbir Gmail gelen kutusuna erişemez. DWD yapılandırılmış hizmet hesabı, kuruluş içindeki herhangi bir kullanıcının kimliğine bürünebilir ve etkileşimli onay olmadan posta kutularına erişebilir. Kritik sınırlama: bu yalnızca Google Workspace (işletme) hesapları için geçerlidir. Kişisel Gmail adreslerinde çalışmaz (@gmail.com). Bkz Google'ın resmi DWD belgeleri.

05

Gmail API, API anahtarım ile "Login Required" hatası neden veriyor?

Çünkü Gmail API, API anahtarlarını kabul etmez. Nokta 401 Giriş Gerekli hata, istekte geçerli bir OAuth 2.0 erişim jetonunun bulunmadığı anlamına gelir Authorization header. Gmail API şunu bekler: Yetkilendirme: Bearer {access_token} Erişim belirtecinin bir OAuth 2.0 akışı (yetkilendirme kodu, hizmet hesabı JWT veya birleşik API belirteci) aracılığıyla alındığı yer. Sadece ekleyerek ?anahtar=SENİN_API_ANAHTARIN Gmail API URL'si çalışmayacak ve 401 veya 403 döndürecektir.

06

Gmail API'yi kendiniz OAuth'u yönetmeden kullanmanın bir yolu var mı?

Evet. Birleşik bir e-posta API'si gibi Unipile Tüm OAuth katmanını yönetir: onay ekranı, belirteç değişimi ve sessiz yenileme belirteç döndürme. Uygulamanız hiçbir zaman erişim belirteçlerini veya yenileme belirteçlerini depolamaz veya yönetmez. Unipile API'sini kendi API anahtarınızla çağırırsınız ve Unipile, tüm OAuth iletişimini Google ile sizin adınıza yönetir bağlı hesaplar. Bu, kodunuzdan Google onay ekranı onay sürecini ve jeton yönetimi karmaşıklığını kaldırır ve Gmail, Outlook ve IMAP'ı tek bir birleşik arayüz altında sunar.

Gmail API kimlik doğrulaması hakkında hâlâ sorularınız mı var? Ekibimiz, kullanım durumunuza uygun doğru kurulum konusunda size rehberlik edebilir.

Bir uzmanla konuşun
tr_TRTR