Kullanıcılarımız bir alana taşınmış ve hesabının takma adları takılıydı. SendAs adresini içe aktarılan takma adlardan birine varsayılan olarak ayarlamamız ve otomatikleştirmenin bir yolunu bulmamız gerekiyordu. Gmail API'sı çözüm gibi görünüyordu, ancak hesaplarda değişiklik yapmak için rolleri olan ayrıcalıklı kullanıcımız çalışmıyordu - "Yetkilendirme reddedildi" 403 hatasını görmeye devam ettik.
SendA'ların ayarlarını nasıl listeleyebildiğimizi gösteren bir PHP örneği.
<?PHP
//
// Description:
// List the user's SendAs addresses.
//
// Documentation:
// https://developers.google.com/gmail/api/v1/reference/users/settings/sendAs
// https://developers.google.com/gmail/api/v1/reference/users/settings/sendAs/list
//
// Local Path:
// /path/to/api/vendor/google/apiclient-services/src/Google/Service/Gmail.php
// /path/to/api/vendor/google/apiclient-services/src/Google/Service/Gmail/Resource/UsersSettingsSendAs.php
//
// Version:
// Google_Client::LIBVER == 2.1.1
//
require_once $API_PATH . '/path/to/google-api-php-client/vendor/autoload.php';
date_default_timezone_set('America/Los_Angeles');
// this is the service account json file used to make api calls within our domain
$serviceAccount = '/path/to/service-account-with-domain-wide-delagation.json';
putenv('GOOGLE_APPLICATION_CREDENTIALS=' . $serviceAccount);
$userKey = '[email protected]';
// In the Admin Directory API, we may do things like create accounts with
// an account having roles to make changes. With the Gmail API, we cannot
// use those accounts to make changes. Instead, we impersonate
// the user to manage their account.
$impersonateUser = $userKey;
// these are the scope(s) used.
define('SCOPES', implode(' ', array(Google_Service_Gmail::GMAIL_SETTINGS_BASIC)));
$client = new Google_Client();
$client->useApplicationDefaultCredentials(); // loads whats in that json service account file.
$client->setScopes(SCOPES); // adds the scopes
$client->setSubject($impersonateUser); // account authorized to perform operation
$gmailObj = new Google_Service_Gmail($client);
$res = $gmailObj->users_settings_sendAs->listUsersSettingsSendAs($userKey);
print_r($res);
?>
Bu hata bizim için de oluşmaya başladı. Bugüne kadar hiç sorun yaşamadık. IMAP kullanıyorsak her şey yolunda - Gmail API ile ilgili bir sorun var gibi görünüyor. Google Yardımı ?? – PNC
Bu daha önce çalıştı mı, yoksa sadece kırdı mı? Eğer kırıldıysa, kırdığı zamanı verebilir misin? Daha önce hiç çalışmadıysa, bir hizmet hesabı olduğunu doğrulayabilir misiniz, Cpanel'de beyaz listeye eklenmiş ve alan çapında kurulum hakkında daha fazla bilgi verebilir misiniz? Şunun gibi bir şey kullanıyorsunuz: https://developers.google.com/accounts/docs/OAuth2ServiceAccount#formingclaimset Hayal ediyorum? –
Ayrıca, isteklerinizdeki "userId" alanı için kullandığınız değeri yayınlayabilir misiniz? Kullanıcının e-posta adresi auth jetonu veya başka bir şeyle eşleşmesi gereken "ben" mi? –