class_docstr: Google authentication using OAuth2.
  
  In order to use, register your application with Google and copy the
  relevant parameters to your application settings.
  
  * Go to the Google Dev Console at http://console.developers.google.com
  * Select a project, or create a new one.
  * In the sidebar on the left, select APIs & Auth.
  * In the list of APIs, find the Google+ API service and set it to ON.
  * In the sidebar on the left, select Credentials.
  * In the OAuth section of the page, select Create New Client ID.
  * Set the Redirect URI to point to your auth handler
  * Copy the "Client secret" and "Client ID" to the application settings as
    {"google_oauth": {"key": CLIENT_ID, "secret": CLIENT_SECRET}}
  
  .. versionadded:: 3.2
class_docstr_tok: ["Google","authentication","using","OAuth2",".","In","order","to","use",",","register","your","application","with","Google","and","copy","the","relevant","parameters","to","your","application","settings",".","*","Go","to","the","Google","Dev","Console","at","http",":","\/\/console.developers.google.com","*","Select","a","project",",","or","create","a","new","one",".","*","In","the","sidebar","on","the","left",",","select","APIs","&","Auth",".","*","In","the","list","of","APIs",",","find","the","Google+","API","service","and","set","it","to","ON",".","*","In","the","sidebar","on","the","left",",","select","Credentials",".","*","In","the","OAuth","section","of","the","page",",","select","Create","New","Client","ID",".","*","Set","the","Redirect","URI","to","point","to","your","auth","handler","*","Copy","the","``","Client","secret","''","and","``","Client","ID","''","to","the","application","settings","as","{","``","google_oauth","''",":","{","``","key","''",":","CLIENT_ID",",","``","secret","''",":","CLIENT_SECRET","}","}","..","versionadded",":",":","3.2"]
docstr: Callback function for the exchange to the access token.
docstr_tok: ["Callback","function","for","the","exchange","to","the","access","token","."]
code: def _on_access_token(self, future, response):
      """Callback function for the exchange to the access token."""
      if response.error:
          future.set_exception(
              AuthError("Google auth error: %s" % str(response))
          )
          return
  
      args = escape.json_decode(response.body)
      future.set_result(args)
  
imports: from __future__ import absolute_import, division, print_function
  import base64
  import binascii
  import functools
  import hashlib
  import hmac
  import time
  import uuid
  from tornado.concurrent import TracebackFuture, return_future, chain_future
  from tornado import gen
  from tornado import httpclient
  from tornado import escape
  from tornado.httputil import url_concat
  from tornado.log import gen_log
  from tornado.stack_context import ExceptionStackContext
  from tornado.util import unicode_type, ArgReplacer, PY3
label_desc: Use image node_id 2 for calling the GoogleOAuth2Mixin obj's underlying member method code with example usage: obj._on_access_token(future, response) without return types