|
@@ -43,13 +43,15 @@ final class GoogleOAuthService: NSObject {
|
|
|
private let bundledClientSecret = "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"
|
|
private let bundledClientSecret = "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"
|
|
|
|
|
|
|
|
// Calendar is needed for schedule. Profile/email make login feel complete in-app.
|
|
// Calendar is needed for schedule. Profile/email make login feel complete in-app.
|
|
|
|
|
+ // Meet Media API (real-time media) requires conference media scope; space scope covers REST metadata/transcripts.
|
|
|
|
|
+ // After changing scopes, users must sign out and sign in again so Google issues a token that includes new scopes.
|
|
|
private let scopes = [
|
|
private let scopes = [
|
|
|
"openid",
|
|
"openid",
|
|
|
"email",
|
|
"email",
|
|
|
"profile",
|
|
"profile",
|
|
|
"https://www.googleapis.com/auth/calendar.events",
|
|
"https://www.googleapis.com/auth/calendar.events",
|
|
|
- // Required for Google Meet conferenceRecords/transcripts APIs.
|
|
|
|
|
- "https://www.googleapis.com/auth/meetings.space.readonly"
|
|
|
|
|
|
|
+ "https://www.googleapis.com/auth/meetings.space.readonly",
|
|
|
|
|
+ "https://www.googleapis.com/auth/meetings.conference.media.readonly"
|
|
|
]
|
|
]
|
|
|
|
|
|
|
|
private let tokenStore = KeychainTokenStore()
|
|
private let tokenStore = KeychainTokenStore()
|