Gmail Подпись для всей организации - PullRequest
0 голосов
/ 01 марта 2019

Я использовал GmailQuickstart для изменения почтовых подписей.Он обновляет мою учетную запись Gmail, но я хочу сделать это для всех пользователей компании.Как сделать так, чтобы мой проект API Google использовался как целая организация?

private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) throws IOException {
    // Load client secrets.
    InputStream in = GmailQuickstart.class.getResourceAsStream(CREDENTIALS_FILE_PATH);
    GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in));

    // Build flow and trigger user authorization request.
    GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
            HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES)
            .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH)))
            .setAccessType("offline")
            .build();
    LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8888).build();
    return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user");
}

public static void main(String... args) throws IOException, GeneralSecurityException {
    // Build a new authorized API client service.
    final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
    Gmail service = new Gmail.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT))
            .setApplicationName(APPLICATION_NAME)
            .build();

    // Print the labels in the user's account.
    String user = "me";


    final java.util.logging.Logger buggyLogger = java.util.logging.Logger.getLogger(FileDataStoreFactory.class.getName());
    buggyLogger.setLevel(java.util.logging.Level.SEVERE);

    SendAs primaryAlias = null;
    ListSendAsResponse aliases = service.users().settings().sendAs().list("me").execute();
    for (SendAs alias : aliases.getSendAs()) {
        if (alias.getIsPrimary()) {
            primaryAlias = alias;
            break;
        }
    }


    //service.users().getProfile().getUserId();
    SendAs aliasSettings = new SendAs()
            .setSignature("Email : " + primaryAlias.getSendAsEmail() + "Company name, Address, zip");
    SendAs result = service.users().settings().sendAs().patch(
            "me",
            primaryAlias.getSendAsEmail(),
            aliasSettings)
            .execute();
    System.out.println("Updated signature for " + result.getDisplayName());
}

Приведенный выше код работает, я могу изменить свою подпись в электронной почте.Я хотел бы изменить подпись электронной почты acress comapony для всех пользователей.Пожалуйста, дайте мне знать, есть ли какое-нибудь решение, которое вы, ребята, внедрили?

...