2017-01-31 7 views
0

Google 스프레드 시트를 업데이트 할 수있는 서비스 계정을 만들었습니다. 이를 위해 Google 시트를 서비스 계정 이메일 ID와 공유해야했습니다. 이제 사용자의 연락처를 업데이트 할 수 있어야합니다. 자격 증명을 사용할 때 원래 사용자가 아닌 서비스 계정 사용자에 대해 업데이트됩니다. 서비스 계정을 사용하여 업데이트 할 수있는 방법이 있습니까?서비스 계정을 사용하여 다른 사용자의 Google 주소록을 업데이트해야합니다.

답변

0

번호 연락처는 업데이트하려는 계정의 유효한 인증 세션으로 만 편집 할 수 있습니다.

1

Google Contacts API version 3.0을 사용해 볼 수도 있습니다. 이 API를 사용하면 클라이언트 응용 프로그램에서 사용자의 연락처를보고 업데이트 할 수 있습니다.

그러나 Google 주소록 API를 사용하려면 OAuth 2.0을 사용하여 요청을 승인해야합니다. 이 언급 한 특징으로, 서버 간 상호 작용을 위해, 당신은

당신이 당신의 G 스위트 도메인에있는 사용자의 사용자 데이터에 액세스하려면

, 다음 서비스에 도메인 전체에 대한 액세스 권한을 위임한다는 OAuth 2.0 for Server to Server Applications을 사용할 수 있습니다 계정.

delegating domain-wide authority에서

: 서비스 계정에 도메인 전체 액세스 권한이 위임 한 경우

당신은, 사용자 계정을 가장의 setServiceAccountUser 방법으로 사용자 계정의 이메일 주소를 지정하려면 GoogleCredential 공장.

응용 프로그램에서 Google API를 호출하려면 GoogleCredential 개체를 사용해야합니다.

GoogleCredential credential = new GoogleCredential.Builder() 
    .setTransport(httpTransport) 
    .setJsonFactory(JSON_FACTORY) 
    .setServiceAccountId(emailAddress) 
    .setServiceAccountPrivateKeyFromP12File(new File("MyProject.p12")) 
    .setServiceAccountScopes(Collections.singleton(SQLAdminScopes.SQLSERVICE_ADMIN)) 
    .setServiceAccountUser("[email protected]") 
    .build(); 

적절한 권한을 획득 한 후, 당신은 updating contacts를 계속할 수

다음은 도메인 전체에 권한을 위임하는 방법에 대한 예입니다.

희망 하시겠습니까?

+0

감사합니다. 이것은 유용합니다. 그러나 g-suite 계정이있는 경우에만 작동합니까? 서비스 계정 이메일 ID를 공유하여 시트와 비슷한 기능을 수행 할 수 있습니다. 연락처와 비슷한 것은 무엇입니까? –