Obtener un Token de OAuth de Ebay

He estado trabajando en ebaySDK durante la mayor parte de la semana. He logrado integrar las API de Trading y Shopping en mi proyecto. Para la API comercial, estaba usando un token de autenticación y autenticidad que tiene una validez de hasta 18 meses. El token de OAuth que necesito para las API de venta es válido solo por un día, así que tendré que buscarlo regularmente antes de que caduque. Seguí la documentación en el sitio e incluso intenté buscar en los repositorys de python en github, pero aún no he podido avanzar. Aquí hay un breve fragmento de mi código de solicitud, ¿Qué estoy haciendo mal?

import requests, json, base64, xmltodict AppSettings = { 'app_id' : 'my_app_id', 'app_secret' : 'my_app_secret', 'dev_id': 'my_dev_id', 'ruName': 'the_ruName_for_my_app' } authHeaderData = AppSettings['app_id']+':'+AppSettings['app_secret'] encodedAuthHeader = base64.b64encode(authHeaderData) session = requests.Session() print encodedAuthHeader url = 'https://api.ebay.com/identity/v1/oauth2/token' session.headers.update({ 'Content-Type':'application/x-www-form-urlencoded', 'Authorization':'Basic '+encodedAuthHeader }) data = { 'grant_type':'client_credentials', 'redirect_uri': AppSettings['ruName'], 'scope':'https://api.ebay.com/oauth/api_scope' } response = session.post(url, data=data).json() print response 

La respuesta que estoy recibiendo es:

 {u'error_description': u'client authentication failed', u'error': u'invalid_client'} 

Revisé todas las llaves. Incluso intenté obtener el token a través del inicio de sesión de producción proporcionado por ebay pero fue en vano. La respuesta que obtuve de la url proporcionada por ebay fue html y js code (No JSON o ningún dato).

¿Alguien ha enfrentado un problema similar? ¿Cómo puedo trabajar a través de esto? ¿Estoy haciendo las peticiones mal? Cualquier idea es muy apreciada

Debido a que esta fue una pesadilla para recorrer los documentos de eBays para encontrar esta respuesta, pensé que publicaría mi función que resolvió esto.

 def getAuthToken(): authHeaderData = AppSettings['client_id']+':'+AppSettings['client_secret'] encodedAuthHeader = base64.b64encode(authHeaderData) headers = { "Content-Type" : "application/x-www-form-urlencoded", "Authorization" : "Basic " + encodedAuthHeader } body= { "grant_type" : "client_credentials", "redirect_uri" : RUNAME, "scope" : "https://api.ebay.com/oauth/api_scope" } data = urllib.urlencode(body) tokenURL = "https://api.ebay.com/identity/v1/oauth2/token" response = requests.post(tokenURL, headers=headers, data=data) authDict = response.json() return authDict['access_token']