Node.js drive api, настройка EmailMessage при создании разрешения не отправляет электронную почту

#javascript #node.js #google-drive-api

#javascript #node.js #google-drive-api

Вопрос:

Использование drive api v3 с googleapis Node.js клиент v61.0.0. При создании разрешения каждый раз, когда я устанавливаю для параметра ‘EmailMessage’ значение, отличное от пустой строки (или не указывая ее вообще, также работает), я вообще не получаю уведомление по электронной почте. Ответ возвращается как 200, и разрешения устанавливаются правильно, однако электронное письмо не отправляется. Я также вижу, что запрос отправлен правильно, и сервер правильно отправил его обратно в объект params.

 const result = await this.drive.permissions.create({
                emailMessage: 'test test',
                sendNotificationEmail: true,
                supportsAllDrives: true,
                resource: permission,
                fileId,
                fields: 'id'
            });
  

Комментарии:

1. Могу я спросить вас о вашем вопросе? В вашей ситуации emailMessage: 'test test', используется, электронное письмо не отправляется, даже когда sendNotificationEmail: true, используется. Правильно ли я понимаю? Если я правильно понимаю, в этом случае, когда используются одни и те же адреса электронной почты, проблема может быть воспроизведена? Кстати, адреса электронной почты — это электронная почта Google? Если это не так, какой результат вы получите, когда протестируете свой скрипт для электронной почты Google? И можете ли вы показать значение permission ? Потому что в моей среде ваш скрипт работает.

2. При использовании async / await я настоятельно рекомендую вам использовать блок try-catch , чтобы мы могли видеть, выдается ли ошибка без предупреждения, несмотря на созданные разрешения. Можете ли вы подтвердить, что нет ошибки, которую вы не «улавливаете»?

3. @tanaike электронное письмо отправляется на внутренний домен электронной почты учетной записи gmail, с которым я его тестирую. разрешения выглядят как {type: 'uesr', role: 'writer', emailAddress: 'myemail@company.com' } @jose-vasquez У меня есть это в блоке try catch исключение не выдается, и результатом является ответ 200

4. Вот пример ответа, который я получаю от вызова api: ` { status: 200, statusText: ‘OK’, запрос: { responseURL: ‘ <a rel="nofollow noreferrer noopener" href="https://www.googleapis.com/drive/v3/files//permissions?emailMessage=test testamp;sendNotificationEmail=trueamp;supportsAllDrives=trueamp;fields=id» rel=»nofollow noreferrer»> googleapis.com/drive/v3/files /<идентификатор файла-пропущен>/… ‘ } `

Ответ №1:

Эта ошибка может быть вызвана областью

Несмотря на отраженные изменения без использования sendNotificationEmail параметра. Если вы используете https://www.googleapis.com/auth/drive.file , попробуйте использовать https://www.googleapis.com/auth/drive область. Это ошибка в документации.

Ссылка

Google Drive API v3> Разрешения> Авторизация

Клиент Google API NodeJS