Wer besitzt erstellte Kalender von service-Konto über die Google Kalender API, und wie kann Sie geteilt werden?
Sagen wir, ich habe ein Google-Konto [email protected]
mit Projekt project-1
(konfiguriert als Google App Engine-Anwendung in der Google Developer Console) und einen service-account mit e-mail-Adresse [email protected]
die zu ihm gehören.
Ich weiß, wie Sie das service-Konto, um einen Kalender erstellen und Bearbeiten der Einträge programmgesteuert: ich benutze die Google APIs Client Library (Java-version, mit service-Konten Anmeldeinformationen) zum aufrufen der Google-Kalender-API in meiner Google App Engine-Anwendung, und genau das tut es. Aber solche erstellt Kalender scheinen eindeutig im Besitz des service-Konto, die nicht von mir englobing Google-Konto. Ich schließe dies aus den folgenden Beobachtungen:
- Wenn ich meine Google-Konto den Kalender in der Google Kalender-Benutzeroberfläche, keiner der programmgesteuert erstellt Kalender zeigen sich unter
My calendars
. - Wenn ich versuche, auf so einen Kalender von Ausstellung
Other calendars
|Add a friend´s calendar
und mit der Dienst-Konten E-Mail-Adresse kann ich senden Sie die Anforderung, aber es wird nie beantwortet (vermutlich weil der service-Konto-e-mail-Adresse nicht um eine "echte" e-mail-Adresse). - Wenn ich das erstellen von Kalendern programmgesteuert festgelegt nicht ich
CalendarListEntry#hidden
, so die defaultfalse
gelten sollten.
Also meine Frage ist: Wie kann ich den Zugriff auf Kalender und Kalender-Einträge wurden erstellt programmgesteuert mit Google Kalender-API (und einem Java-client in meinem Fall) in den normalen Google Kalender-Web-UI. E. g., kann der service-Konto-teilen Sie Ihre Kalender mit Ihrem Google-Konto besitzen, oder kann ich direkt beeinflussen, das Google-Konto den Kalender mit der service-Konto-Anmeldedaten in der Benutzeroberfläche.
Ich weiß, es gibt einige Vorherige Fragen auf das gleiche Thema, aber Sie haben nicht geholfen, das Rätsel zu lösen, die für mich so weit.
- Heyho, ich denke, wir sind Art von versuchen, die gleichen Dinge tun. könnten Sie diese Frage bitte? Was würden Sie tun, wenn Sie aktualisieren möchten, mit mehreren Personen Kalender? stackoverflow.com/questions/23469075/...
- Es funktioniert jetzt für mich mit einem service-Konto (und in Java) - siehe Antwort akzeptiert. Wenn Sie mehrere Menschen in den Kalendern, die Sie haben können, um mehrere, unterschiedliche service-Konten ...
- Danke, aber ich denke nicht so. Nehmen wir beispielsweise an, es sind 100 Mitarbeiter in meinem Unternehmen, und ich habe für den Bau von 100 service-Konten für die Aktualisierung Ihrer Kalender? Nicht scheint Sinn zu machen. Vielleicht habe ich den Wiederaufbau der google-client und Kalender-service für jeden Mitarbeiter, und dass der service-account die Identität der Mitarbeiter.
- Ich sehe Ihren Punkt. Allerdings, da ich nicht vertraut bin mit (der Semantik von) domain konsumieren Tasten, ich kann nicht weiter helfen, wieder Ihr verknüpfte Frage.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie programmgesteuert den Kalender freigeben, erstellt von der service-Konto. Die Kalender sind im Besitz des service-Konto.
Was Sie versucht haben :
Den Kalender freigeben, die programmgesteuert mit deinem-Konto, melden Sie die Kalender-id und geben Sie es in der Benutzeroberfläche.
role
e.gwriter
,scope.type
zuuser
, undscope.value
zu[email protected]
?Gemäß der (veraltete) Dokumentation, Sie zu rufen
.setServiceAccountUser("[email protected]")
und die Veranstaltung wird zeigen, bis auf, dass die Kalender des Benutzers.https://developers.google.com/identity/protocols/OAuth2ServiceAccount#authorizingrequests
Es muß sich um ein Dienstkonto für eine GSuite-Domäne, und Sie haben zu aktivieren GSuite Domain-breiten-Delegation.
Ich dachte, Sie hatte sich um den Kalender zu erstellen mit einer PRN-parameter (Was so ziemlich fälscht Ihr bestehendes google-Konto-Adresse, die auf den "Besitzer" Identität des Kalenders)
mit der prn-parameter wird daher ermöglicht die Verwendung des service-Konto-Authentifizierung ( zum Beispiel ) hinzufügen von Ereignissen in Ihrem Namen (google-Adresse).
Wenn fand eine Diskussion mit der prn-parameter