2012-06-13 17 views
6

Estoy interactuando con un servicio APEX personalizado que obviamente requiere autenticación OAuth. Puedo autenticar y autorizar fácilmente mi aplicación. Todo funciona bienNo refresh_token en SalesForce OAuth Response

Sin embargo, el token de acceso que recibo tiende a caducar.

Por supuesto, puedo actualizarlo enviando un refresh_token. Suena genial.

El problema es que no recibo un refresh_token en una respuesta de SalesForce.

Sí envío solicitudes a [instancia] .salesforce.com/services/oauth2/token, también intenté usar login.salesforce.com/services/oauth2/token, pero no puedo encontrar 'refresh_token' en la respuesta . ¡Hay todo aparte de eso allí! ...

+0

¿Qué flujo oauth estás usando? ¿Cuál es tu devolución de llamada uri? – superfell

+0

@superfell Todo fue correcto, aparte del alcance. Ver mi respuesta a continuación. Gracias de cualquier manera :)! –

Respuesta

4

He resuelto el problema gracias a mi maravilloso colega.

Debería haber agregado 'refresh_token' al alcance cuando recupere un código de autenticación.

+3

En realidad, las papeletas de actualización no se entregan (o ya no se entregan) a menos que esté compilando una aplicación móvil o una aplicación In-SalesForce. Consulte http://wiki.developerforce.com/page/Digging_Deeper_into_OAuth_2.0_on_Force.com y busque "Tenga en cuenta que refresh_token solo se envía si cualquiera de los siguientes es el caso". Descubrí esto después de 4 horas de tratar de descubrir por qué no me lo daba. :) Estoy feliz de que se demuestre que estoy equivocado, sin embargo ... – Anthony

+1

¿Alguna vez lo hiciste funcionar? No recibo un token de actualización a pesar de la configuración del alcance. –

+0

Además de que 'refresh_token' no es un ámbito, pero 'offline_access' es .. –

9

Marque la sección "Ámbitos seleccionados de OAuth", que debe habilitarse "Realizar solicitudes en su nombre en cualquier momento" para obtener el token de actualización. crear ==> Aplicaciones ==> API (Habilitar configuración de OAuth) ==> Ámbitos OAuth seleccionados.

+2

No estoy seguro de por qué el alcance de "Acceso completo (completo)" no es suficiente ... pero no lo es. También tienes que hacer lo anterior. Muchas gracias. – barclay

+1

Esta debería ser la respuesta aceptada. – Detached