0

푸시 알림 시계를 설정하려고하지만 오류 응답이 표시됩니다. 내가 필요한 허가는 무엇인가?오류 403 : 클라우드에 테스트 메시지를 보내는 중 오류가 발생했습니다. PubSub :이 작업을 수행 할 권한이없는 사용자

요청 :

// Google API 
$client = getClient(); 

// POST request  
$ch = curl_init('https://www.googleapis.com/gmail/v1/users/me/watch'); 

curl_setopt_array($ch, array(
    CURLOPT_POST => TRUE, 
    CURLOPT_RETURNTRANSFER => TRUE, 
    CURLOPT_HTTPHEADER => array(
     'Authorization: Bearer ' . $client->getAccessToken()['access_token'], 
     'Content-Type: application/json' 
    ), 
    CURLOPT_POSTFIELDS => json_encode(array(
     'topicName' => 'projects/xxxx/topics/xxxx', 
     'labelIds' => ["INBOX"] 
    )) 
)); 

응답 :

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "global", 
    "reason": "forbidden", 
    "message": "Error sending test message to Cloud PubSub projects/xxxx/topics/xxxx : User not authorized to perform this action." 
    } 
    ], 
    "code": 403, 
    "message": "Error sending test message to Cloud PubSub projects/xxxx/topics/xxxx : User not authorized to perform this action." 
} 
} 

더 상세 :

  • 사용 범위 GMAIL_READONLY이다.
  • 설명 및 주제가 존재하며 동일한 콘솔에서 작성되었습니다.
  • 콘솔에서 새 메시지를 게시하려고 시도했지만 작동했습니다.

답변

1
페이지에서

: https://developers.google.com/gmail/api/guides/push#grant_publish_rights_on_your_topic

클라우드 팝/하위 당신이 당신의 화제에 알림을 게시 Gmail에 권한을 부여해야합니다.

이렇게하려면 게시 권한을 serviceAccount : [email protected]으로 부여해야합니다. 리소스 수준 액세스 제어 지침에 따라 Cloud Pub/Sub 개발자 콘솔 권한 인터페이스 을 사용하여이 작업을 수행 할 수 있습니다.

(강조 표시)