1

Google 캘린더 API (v3)에 연결하는 Python 백엔드 서비스를 개발하고 캘린더 항목을 검색하여 노출 (HTTP 호출을 통해 가져옴)합니다. 그렇게하기 위해 나는 OAuth 2.0 for Server to Server Applications을 사용합니다.golang.org/x/oauth2/google 라이브러리는 서비스 인증 서비스를 지원합니까?

몇 년 전에 내 응용 프로그램을 개발할 때 Google에서 제공 한 모듈이 아직 Python 3에 이식되지 않았고 JWT 방식으로 이동했습니다 (위 링크 된 설명서의 "HTTP/REST").

이제 배우고 싶습니다.이 응용 프로그램을 포팅하여 시작하십시오.

Google Calendar API quickstart for Go은 전체 예제를 제공하지만 인증은 사용자의 동의 화면 (3-legged oAuth)을 포함한다고 가정합니다. 이것은 파이썬 예제와 비슷하지만 서비스 접근 방식을 사용하는 파이썬 버전도 있습니다.

Go 라이브러리에서 사용할 수있는 인증 기능을 제공하는 서비스입니까?

수동으로 JWT를 생성하지는 않지만 (지금은 코드의 파이썬 버전으로 사용) 수동으로 생성 하겠지만 Go로 시작한 이래로 가능한 한 많이 라이브러리를 사용하는 것이 좋습니다. 즉석에서.

답변

0

나는 순간이 테스트 설정 아니에요하지만이 같은 일을해야 믿습니다

패키지의 주요

import (
    "context" 
    "io/ioutil" 
    "log" 

    "golang.org/x/oauth2/google" 
    calendar "google.golang.org/api/calendar/v3" 
) 

func main() { 
    cred, err := ioutil.ReadFile("service_account.json") 
    if err != nil { 
     log.Fatalf("Unable to read JSON credentials config %v", err) 
    } 

    conf, err := google.JWTConfigFromJSON(cred, "https://www.googleapis.com/auth/calendar") 
    if err != nil { 
     log.Fatalf("Unable to obtain JWT conf %v", err) 
    } 

    client := conf.Client(context.Background()) 
    srv, err := calendar.New(client) 
    if err != nil { 
     log.Fatalf("Unable to retrieve calendar Client %v", err) 
    } 
    ... 
} 

service_account.json의 내용은 어떻게 든 서비스 계정 구성에서 얻어 져야한다 , 나는 그 부분에 대해 100 % 확실하지 않다.