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 を呼び出すことができますが、それはクライアントを必要としないため、私が知る限り、トークンは更新されません。