2017-09-22 8 views
-1

Google 캘린더를 사용하여 새 이벤트를 만들려고하고 있습니다. 현재 자바 스크립트 API를 사용하고 있습니다. 내가 요청을하려고 할 때, 내가받는 반응은 403 - 금지되어 있습니다. Google Developers page에서 사용할 수있는 API 탐색기를 사용하여 동일한 요청을 테스트했으며 정상적으로 작동했습니다.Google 캘린더에 자바 스크립트 (이미 서비스 계정과 공유 됨)로 이벤트를 삽입 할 수 없습니다.

인터넷에서 문제를 검색 한 결과 사람들이 내가 만든 Google 서비스 계정으로 캘린더를 공유해야한다고 말한 몇 가지 해결책을 발견했습니다. 나는 그것을했고 여전히 효과가 없다. 어떻게 해결할 수 있을지 아십니까?

편집

초기화 :

gapi.client.init({ 
      discoveryDocs: DISCOVERY_DOCS, 
      clientId: CLIENT_ID, 
      scope: SCOPES 
     }).then(function() { 
      if (!(gapi.auth2.getAuthInstance().isSignedIn.get())) { 
       handleAuthClick(); 
      } 
      else { 
       getAvailableTimes(); 
      } 
      // Listen for sign-in state changes. 
      // gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus); 
     }); 

삽입 조치 :

modal.result.then(function (interview) { 
      var eventRequest = gapi.client.calendar.events.insert({ 
       calendarId: interview.recruiter.email, 
       sendNotifications: true, 
       resource: { 
        summary: 'Interview with ' + interview.candidate.name, 
        description: '', 
        start: { 
         dateTime: interview.start 
        }, 
        end: { 
         dateTime: interview.end 
        }, 
        attendees: [ 
         {email: interview.recruiter.email}, 
         {email: interview.candidate.email} 
        ], 
        reminders: { 
         useDefault: false, 
         overrides: [ 
          {method: 'email', minutes: 60 * 24}, 
          {method: 'email', minutes: 60}, 
          {method: 'popup', minutes: 60}, 
          {method: 'email', minutes: 10}, 
          {method: 'popup', minutes: 10} 
         ] 
        } 
       } 
      }); 
     }) 
+0

수정 구슬이 필수 유지 관리에 있습니다. 오류를 현지화하는 데 도움이 될 수 있도록 코드를 게시 할 수 있습니다. 현재까지는 * anything * – Nikolas

+0

코드가 추가되었습니다. –

답변

0

또한 인터넷에서 솔루션을 검색하면서이 문제의 원인을 정확하게 발견했습니다. Javascript API를 사용하여 서비스 계정에 연결할 수 없습니다. :

0

서비스 계정이 당신의 전형적인 일반 계정 수 없습니다. 언급 한 Events.insert 페이지의 샘플은 서비스 계정을 사용하지 않습니다. 귀하의 일반 계정을 사용합니다.

  1. 달력 API는
  2. 스토어에게 P12 키를 생성 된 구글 개발자 콘솔
  3. 서비스 계정에서 사용 가능하고 당신이 그것을 사용 볼 수있는 곳 프로젝트 폴더에이 저장되어 서비스 계정은 더 같이 설정 필요가 후에.

이 참조 SO post을 확인하고이 공식 Service Accounts doc for Google APIs을 확인할 수도 있습니다.

+0

JavaScript를 사용하여 Google API (GAPI)에 액세스합니다. 요청한 것은 스코프와 클라이언트 ID뿐입니다. 클라이언트 ID의 경우 [Google 개발자 콘솔] (https : //)에서 만든 웹 애플리케이션 용으로 설정했습니다. console.developers.google.com) 서비스 계정 자체도 만들었지 만, init config의 클라이언트 ID로 설정하면 요청에 내 주소가 허용 목록에 없다는 오류가 반환됩니다. 어떻게해야합니까? 여기에? –

+0

이 프로젝트에 대한 서비스 계정을 사용하고 있습니까? – noogui