전자 메일을 보내는 Gmail API 스크립트를 올바르게 설정하려면 어떻게해야합니까?CRON Node.js Gmail API 스크립트
나는 this method을 사용하려고하는데, this quickstart 가이드에서 스크립트를 작성하기 시작했습니다.
OAuth 2 인증을 사용하지 않고이 작업을 수행 할 수있는 다른 방법이 있습니까? 또는 한 번 유효성을 검사하는 방법?
전자 메일을 보내는 Gmail API 스크립트를 올바르게 설정하려면 어떻게해야합니까?CRON Node.js Gmail API 스크립트
나는 this method을 사용하려고하는데, this quickstart 가이드에서 스크립트를 작성하기 시작했습니다.
OAuth 2 인증을 사용하지 않고이 작업을 수행 할 수있는 다른 방법이 있습니까? 또는 한 번 유효성을 검사하는 방법?
내가 OAuth2를 권한을 부여 JWT를 사용하여 솔루션을 발견했다. 도메인 전체의 위임 서비스 계정을 만들려면 관리자 계정이 있어야합니다. 그런 다음 개발자 콘솔에서 자격 증명으로로드하는 서비스 키 JSON 파일을 다운로드해야합니다.
먼저이 같은 모든 사용자를 가져 오기 :
const google = require('googleapis');
const gmail = google.gmail('v1');
const directory = google.admin('directory_v1');
const scopes = [
'https://www.googleapis.com/auth/gmail.readonly',
'https://www.googleapis.com/auth/admin.directory.user.readonly'
];
const key = require('./service_key.json');
var authClient = new google.auth.JWT(
key.client_email,
key,
key.private_key,
scopes,
"[email protected]"
);
authClient.authorize(function(err, tokens){
if (err) {
console.log(err);
return;
}
directory.users.list(
{
auth: authClient,
customer: 'my_customer',
maxResults: 250,
orderBy: 'email'
}, (err, resp) => {
if (err) {
console.log(err);
return;
}
console.log(resp);
});
});
은 그럼 당신은 스레드 목록 (100 요청 당 (페이지))를 가져올 필요가있다 (여기에는 admin 디렉토리 권한이있는 계정을 사용해야합니다). 그리고 각 스레드 객체에 대해 전체 스레드에 대해 get 메소드를 호출해야합니다. Gmail API를 사용하면 이메일을 가져 오려는 사용자 권한을 얻습니다. 요청시
userId
사용 값은
'me'
입니다.
Gmail API에 대한 모든 요청은 인증 된 사용자에 의해 승인되어야하기 때문에 앱과 함께 Gmail APi를 사용하는 경우 OAuth 2.0을 사용해야합니다. quickstart에 눈에 띄게되면이 API가 작동하도록 자격 증명/Outh 클라이언트 ID를 만들어야합니다.
자세한 내용은 authorize your app with Gmail으로가는 다른 방법이 있습니다. 앱에 대한 "Google 로그인"인증 방법을 제공하는 Google+ Sign-in의 도움으로 해결할 수 있습니다.
Gmail의 승인을 요청하는 동안 OAuth 2.0은 하나의 액세스 토큰과 하나의 새로 고침 토큰을 제공합니다. 매번 유효성 검사를하지 않으려면 액세스 토큰을 저장하십시오. 만료 된 후에 새로 고침 토큰을 사용하여 새 액세스 토큰을 가져옵니다 (액세스 토큰은 한 시간마다 만료 됨).
여기이 과정에 대해 읽기 : https://developers.google.com/identity/protocols/OAuth2
이 스크립트를 서버에서 CRON으로 실행하려고합니다. 기본적으로 자동으로 특정 간격으로 실행되어야합니다. 내 이메일에 도메인 전체 위임을 사용하고 회사 도메인 내의 다른 계정에서의 인증을 피할 수 있습니까? – Kunok