Google Sign-In 및 Google APlientForeST를 사용하여 Google 달력에 간단히 액세스
이 글의 내용
GCP를 통해 Google Calendar API를 사용하는 방법은 iOS 애플리케이션으로 Google 캘린더에 액세스하는 방법 중 하나입니다.
이 기사에서는 Google Sign-In 과 Google APlientForeST 두 프로그램 라이브러리를 사용하여 Google OAuth 인증을 수행하고 Google 달력에서 달력 예약 섹션을 가져오는 절차를 설명합니다.
라이브러리 소개, 가져오기 방법
우선 이번에 사용한 두 개의 프로그램 라이브러리에 대해 간단하게 설명해 드리겠습니다.
Google Sign-In
첫 번째는 "Google Sign-In"이라는 프로그램 라이브러리입니다.
이 라이브러리를 사용하면 iOS 애플리케이션을 통해 Google의 OAuth 인증을 쉽게 수행할 수 있습니다.
또한 Google 달력에서 데이트 권한을 쉽게 얻을 수 있습니다.
이 프로그램 라이브러리를 사용하여 인증할 때 GCP에서 취득한 'OAuth 클라이언트 ID' 와 'URL 방안' 이 필요합니다.
이 글은 GCP에서 그런 것을 얻는 방법을 설명하지 않았지만, 나는 바로 g가 나오고 싶다.
GoogleAPIClientForREST
두 번째는 "GoogleAPIClientForREST"이라는 프로그램 라이브러리입니다.
이 라이브러리는 Google의 다양한 API에 대한 액세스 데이터 등을 쉽게 얻을 수 있습니다.
방금 설명한 "Google Sign-In"과 같은 프로그램 라이브러리에서 얻은 로그인 사용자 정보를 이용하여 API에 접근할 수 있습니다.
이번에 Google Calendar API를 사용할 때 이 라이브러리를 사용합니다.
Google Calendar API에 액세스하려면 인증 때와 마찬가지로 GCP 설정에서 액세스해야 하며 이 기사에서는 생략됩니다.
라이브러리 가져오기 방법
Google Sign-In을 Google에서 CocoPods로 가져오는 것을 추천합니다. Google APlientForeST도 CocoPods에서 가져올 수 있기 때문에 Podfile에서 다음과 같이 기술
pod install
하면 프로그램 라이브러리를 가져옵니다.Podfile
pod 'GoogleSignIn'
# Calendar API にアクセスできれば良いため、このように記述している
pod 'GoogleAPIClientForREST/Calendar', "1.5.2"
두 개의 라이브러리를 사용하여 Google 캘린더에 액세스
여기서부터 방금 소개한 두 개의 라이브러리를 사용한 아래의 내용을 설명한다.
Google Sign-In을 사용한 OAuth 인증
이것에 관해서는 스스로 설명하지 않아도 된다공식 문서에 상세한 설명이 있기 때문에 나는 그것을 주로 참조하는 것이 좋다고 생각한다.
당분간 Google Calendar API를 활용하기 위해서는 OAuth 인증 시 설정
scopes
이 필요합니다.역할 영역 목록에서 필요에 따라 작용역을 다음과 같은 내용으로 설정한 후
signIn
방법을 호출한다.let scopes = [
"https://www.googleapis.com/auth/calendar.readonly",
"https://www.googleapis.com/auth/calendar.events.readonly"
]
GIDSignIn.sharedInstance()?.scopes = scopes
GIDSignIn.sharedInstance()?.signIn()
달력에 접근할 수 있는 권한을 얻은 후 OAuth 인증을 받을 수 있습니다.또한 주의해야 할 것은
GIDSignIn.sharedInstance()
를 비롯한 GIDSignIn
계의 속성과 방법은 대부분이implicitly unwrapped 옵션al로 표현되기 때문에 nil
의 값에 접근하지 않기 위해 코드를 쓸 필요가 있다고 생각합니다.(문서에 기재된 샘플에 따라 쓰면 예상치 못한 시기에 붕괴될 수도 있다.)구글 인터페이스 ForeST를 사용하여 예약 가져오기
앞에서 설명한 OAuth 인증이 순조롭게 성공한 상태, 예를 들어 아래 코드를 통해
GIDGoogleUser
유형의 값을 얻을 수 있다.let gidCurrentUser = GIDSignIn.sharedInstance()?.currentUser
이 유형의 값을 사용하는 동시에 Google APlientForeST에서 달력에서 데이트 코드를 가져오는 것은 다음과 같습니다.import GoogleAPIClientForREST
import GoogleSignIn
// このモジュールは GoogleAPIClientForREST を導入すると利用できるようになります
import GTMSessionFetcher
// ...
let calendarService = GTLRCalendarService()
// calendarService に OAuth 認証済みのユーザーの情報をセットする
calendarService.authorizer = gidCurrentUser.authentication.fetcherAuthorizer()
// カレンダーの予定検索用の Query を条件を指定しつつ作成していく
let query = GTLRCalendarQuery_EventsList.query(withCalendarId: "primary") // primary を設定するとユーザーのプライマリカレンダーにアクセスできる
query.timeMin = GTLRDateTime(dateComponents: minDateComponents)
query.timeMax = GTLRDateTime(dateComponents: maxDateComponents)
query.orderBy = "startTime"
query.maxResults = 2500
calendarService.executeQuery(query) { _, calendarEvents, error in
if let error = error {
// エラー処理
}
guard let calendarEvents = calendarEvents as? GTLRCalendar_Events,
let items = calendarEvents.items
else { return }
// items などを利用して、予定取得成功時の処理を書いていく
}
단지 하나의 예일 뿐이지만 위에서 말한 바와 같이 달력의 예약을 얻어 응용 프로그램에서 다양한 처리를 할 수 있다.'Google APlient ForeST'에 이벤트용 유형 등이 준비돼 있어 이를 활용해 코드를 쓸 수 있지만, 뷰 등 웹사이트에서 사용할 때는 적절하게 처리하기 편한 유형으로 전환하는 것이 좋다.
참고 자료
Reference
이 문제에 관하여(Google Sign-In 및 Google APlientForeST를 사용하여 Google 달력에 간단히 액세스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/kalupas226/articles/0c5d13aa2ab175텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)