old_contents: from json import loads, dumps
  
  from oauthlib.common import add_params_to_uri
  
  
  def weibo_compliance_fix(session):
  
      def _missing_token_type(r):
          token = loads(r.text)
          token['token_type'] = 'Bearer'
          r._content = dumps(token)
          return r
  
      def _non_compliant_param_name(url, headers, data):
          token = [('access_token', session._client.access_token)]
          url = add_params_to_uri(url, token)
          return url, headers, data
  
      session._client.default_token_placement = 'query'
      session.register_compliance_hook('access_token_response',
                                       _missing_token_type)
      session.register_compliance_hook('protected_request',
                                       _non_compliant_param_name)
      return session
  
new_contents: from json import loads, dumps
  
  from oauthlib.common import add_params_to_uri
  
  
  def weibo_compliance_fix(session):
  
      def _missing_token_type(r):
          token = loads(r.text)
          token['token_type'] = 'Bearer'
          r._content = dumps(token).encode('UTF-8')
          return r
  
      session._client.default_token_placement = 'query'
      session.register_compliance_hook('access_token_response',
                                       _missing_token_type)
      return session
  
subject: remove the protected_request compliance hook for Sina Weibo. encode the _content of the token response to UTF8 in the access_token_response hook.