[Oauth2] Google 메일 알림 구독 개발 콘솔 설정 방법

구글은 email이나 calenar에 대한 알림을 구독 하려면

Pub/Sub을 이용해야 한다.

 

https://console.cloud.google.com/cloudpubsub

위 URL에 접속해서 Topics에 들어간다음 Topic을 만들고 

 

 

 

구독을 추가 하면된다. 전송유형은 push로 해서 알림을 받을 endpoint를 기입해주면 된다. 

 

 

그리고 소스에서는  구글 sdk를 이용해서 WatchRequest()에 그 위에서만든 토픽 이름을 이용해서 watchRequest 객체를 만들고

val resourceList = listOf("INBOX")

/**
 * Gmail watch 요청은 Cloud Pub/Sub 이용하여 푸시 알림을 전달
 */
val watchRequest = WatchRequest().apply {
    topicName = properties.subscriptionTopic
    labelIds = resourceList // Only monitor INBOX emails
    labelFilterAction = "include"
}

 

구독을 API를 신청하면된다.

val watchResponse = gmailService.users().watch("me", watchRequest).execute()

 

 

 

[에러해결]

 

 Topic의 Publisher 권한이 없으면 Gmail Watch 요청 시 다음 에러가 발생한다. 

 

 

 

{
  "code": 403,
  "message": "User not authorized to perform this action.",
  "errors": [
    {
      "reason": "forbidden",
      "message": "Error sending test message to Cloud PubSub..."
    }
  ]
}

 

User not authorized to perform this action.","status":"PERMISSION_DENIED"

 

해결하려면 아래 Permission을 추가해줘야 한다. 

 

 

IAM 에서 계정을 추가후에  위에 ADD Principal 에서 넣어주면 된다.

 

 

gmail-api-push@system.gserviceaccount.com 

publisher 설정 필수 !!!

댓글

Designed by JB FACTORY