2

Go with OAuth を Google に対して構成しました。次に、アクセス トークンを使用して、gmail API、連絡先 API、ドライブ API などに対するリクエストを行います。これらには、 object ではなく、実際のアクセス トークンである文字列が必要です*oauth2.Token

アクセス トークンが有効な間は、すべてが機能します。無効になると、データにアクセスできなくなります。サービスに対してクエリを実行する前に、更新トークンを使用して新しいアクセス トークンを取得する必要があるため、これは理にかなっています。

私の理解では*http.Client、OAuth トークンから作成すると、必要に応じて新しいアクセス トークンが自動的に更新されます。

GETただし、クライアントから最新のアクセス トークンを取得し、 Google API に対するリクエストの一部として使用してサービスを認証する方法については、よくわかりません。

要約すると:

//generate client
//get accessToken.AccessToken from client
//do HTTP GET request to get a users image from contact api (or something)
//pass as either a GET parameter, or as a header the access token

クライアントがトークンの更新を処理する場合は、クライアントを使用してアクセス トークンを取得し、有効にする必要があります。どうやってそれをしますか?私は使用を検討しましたconfig.TokenSource(ctx, tok)が、その上で TokenSource を呼び出すことができますが、それはクライアントを必要としないため、私が知る限り、トークンは更新されません。

4

1 に答える 1

0

「golang.org/x/oauth2」パッケージの次の関数は、必要に応じてトークンを自動更新します。

func (*oauth2.Config).Client(ctx context.Context, t *oauth2.Token) *http.Client

https://pkg.go.dev/golang.org/x/oauth2#Config.Client

于 2021-02-13T11:54:32.050 に答える