내 애플리케이션에서 Google 캘린더 API를 사용하고 있습니다. 몇 명의 사용자는 물론 내 계정의 클라이언트 ID와 클라이언트 암호도 생성했습니다. 응용 프로그램을 실행할 때 브라우저에 로그인하지 않은 경우 내 Gmail 계정에 로그인해야합니다. 일단 내 Gmail 계정에 로그인하면 성공적으로 내 캘린더에서 이벤트를 가져올 수/생성/업데이트/삭제할 수 있습니다..net google calendar api : 누구나 이벤트를 만들거나 업데이트/삭제할 수 있습니다.
현재 캘린더 ID가 Gmail 계정으로 로그인되어 있지만 다른 캘린더 ID의 일정을 가져올 수 있지만 다른 사용자의 캘린더 ID로 일정을 만들거나 업데이트/삭제할 수 없습니다.
내 요구 사항은 내 Gmail ID에 로그인되어 있으며 [email protected]이라고 말하면서 캘린더 ID [email protected]에 대한 일정을 가져올 수 있지만 일정에 대한 일정을 만들거나 업데이트하거나 삭제할 수는 없습니다 id [email protected]
인터넷에서 많은 연구를했지만 아무것도 찾지 못했습니다. 내 지식에 따라 권한 + 액세스 토큰을 요청에 전달해야합니다. 나는 이것을 시도했지만 작동하지 않았다.
이 요구 사항을 달성하기 위해 무엇을 제안하십시오.
calID = Convert.ToString(Session["CalenderId"]);
userSecret = Convert.ToString(Session["UserSecret"]);
if (!string.IsNullOrEmpty(calID) && !string.IsNullOrEmpty(userSecret))
{
using (var stream =
new FileStream(userSecret, FileMode.Open, FileAccess.Read))
{
string credPath = System.Environment.GetFolderPath(
System.Environment.SpecialFolder.Personal);
credPath = Path.Combine(credPath, ".credentials/calendar-dotnet-quickstart.json/" + calID);
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
Scopes,
"user",
CancellationToken.None,
new FileDataStore(credPath, true)).Result;
// Response.Write("Credential file saved to: " + credPath);
}
// Create Google Calendar API service.
var service = new CalendarService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
희망 사항을 잘 알고 계실 것입니다. 가장 빠른 응답을 기다리고 있습니다. 감사합니다.
감사합니다. –
캘린더 ID를 어떻게 공유해야하는지 알려 주시겠습니까? 아니면 작업 예제 링크를 줄 수 있습니까? –
예를 들어 보지 않았지만 https://developers.google.com/google-apps/calendar/v3/reference/acl/insert # auth 참고 : scope는 캘린더를 공유하려는 사용자 이메일 주소입니다. – DaImTo