la lectura de su pregunta que también han tratado de encontrar la solución y también hablado con el Sr. Nabeel Siddiqui - Autor de linkedin-j API
y esta fue su respuesta cuando le pregunté si era posible cerrar sesión con linkedin-j api?
Hola Mayur Hay un método LinkedInOAuthService # invalidateAccessToken que se supone que invalida su token de acceso. La comunidad no la usa demasiado, así que no estoy seguro si funciona como se espera o no. Pruébalo y avísame si hay problemas. Saludos Nabeel Mukhtar
así que en mi actividad lo probé de esta manera.
final LinkedInOAuthService oAuthService = LinkedInOAuthServiceFactory.getInstance().createLinkedInOAuthService(consumerKey, consumerSecret);
final LinkedInApiClientFactory factory = LinkedInApiClientFactory.newInstance(consumerKey, consumerSecret);
LinkedInRequestToken liToken;
LinkedInApiClient client;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
liToken = oAuthService.getOAuthRequestToken(CALLBACKURL);
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(liToken.getAuthorizationUrl()));
startActivity(i);
}
@Override
protected void onNewIntent(Intent intent)
{
super.onNewIntent(intent);
Uri uri = intent.getData();
if (uri != null && uri.toString().startsWith(CALLBACKURL))
{
String verifier = intent.getData().getQueryParameter("oauth_verifier");
LinkedInAccessToken accessToken = oAuthService.getOAuthAccessToken(liToken, verifier);
client = factory.createLinkedInApiClient(accessToken);
Connections con = client.getConnectionsForCurrentUser();
//AFTER FETCHING THE DATA I HAVE DONE
oAuthService.invalidateAccessToken(accessToken);
//this is for sign out
}
}
Por favor, intente de esta manera una vez y dígame si resuelve su problema.
cual también yo he visto donwloaded y el código fuente de API linkedin-j y en LinkedInOAuthServiceImpl.java
se han dado a la función y esa función también funciona si escribimos el mismo código en nuestro archivo. que es,
@Override
public void invalidateAccessToken(LinkedInAccessToken accessToken) {
if (accessToken == null) {
throw new IllegalArgumentException("access token cannot be null.");
}
try {
URL url = new URL(LinkedInApiUrls.LINKED_IN_OAUTH_INVALIDATE_TOKEN_URL);
HttpURLConnection request = (HttpURLConnection) url.openConnection();
final OAuthConsumer consumer = getOAuthConsumer();
consumer.setTokenWithSecret(accessToken.getToken(), accessToken.getTokenSecret());
consumer.sign(request);
request.connect();
if (request.getResponseCode() != HttpURLConnection.HTTP_OK) {
throw new LinkedInOAuthServiceException(convertStreamToString(request.getErrorStream()));
}
} catch (Exception e) {
throw new LinkedInOAuthServiceException(e);
}
}
encontré una función que se va cerrar sesión "invalidateAccessToken (client.getAccessToken());" pero no está funcionando ... –
lo he intentado con la siguiente URL https://www.linkedin.com/secure/login?session_full_logout=&trk=hb_signout pero no funcionó. – milind
también probé con https://api.linkedin.com/uas/oauth/logout?oauth_token= pero no puede –