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」)に進んでいます。

私は今Goを学び、このアプリケーションを移植することから始めたいと思います。

Google Calendar API quickstart for Goは完全な例ですが、認証にはユーザーの同意画面(3-legged oAuth)が含まれることを前提としています。これはPythonの例に似ていますが、Service to Serviceアプローチを使用するPythonバージョンもあります。

このサービスは、Goライブラリで利用できる認証機能に対応していますか?

もし私が手動でJWTを生成するのであれば(私のコードのPython版でこれをやっているように)、私はちょうどGoで始まっているので、できるだけ多くのライブラリを使いたい急いで。

答えて

0

私は、現時点ではこれをテストするために、セットアップではないが、私はこのような何かが動作するはずと信じて:service_account.jsonの内容が何らかの形でサービスアカウントの構成から取得する必要があります

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) 
    } 
    ... 
} 

メイン

パッケージ私はその部分について100%確信していません。

関連する問題