cancel
Showing results for 
Search instead for 
Did you mean: 

Obtener Enlace Público al crear documento

wifer
Champ on-the-rise
Champ on-the-rise

Estoy realizando el ingreso de documentos desde una función java con CMIS, mi pregunta cómo puedo obtener el enlace publico que se muestra al hacer clic en compartido. Ya que éste se genera al momento de hacer clic en compartir y no al momento de la creación del documento.

1 ACCEPTED ANSWER

wifer
Champ on-the-rise
Champ on-the-rise

Bueno logré mi propósito, aunque no tan funcional, pero funciona

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

/**

*

* @author Fernando Bustos

*/

public class Pruebados {

    /**

     * @param args the command line arguments

     */

    public static void main(String[] args) {

        // TODO code application logic here

        System.setProperty("webdriver.chrome.driver", "D://chromedriver.exe");

    // Initialize browser

    WebDriver driver=new ChromeDriver();

    // Open

    driver.get("http://localhost:8080/share");

    driver.findElement(By.id("page_x002e_components_x002e_slingshot-login_x0023_default-username")).sendKeys("usuario");

    driver.findElement(By.id("page_x002e_components_x002e_slingshot-login_x0023_default-password")).sendKeys("contraseña");

    driver.findElement(By.id("page_x002e_components_x002e_slingshot-login_x0023_default-submit-button")).click();

    driver.get("http://localhost:8080/share/page/document-details?nodeRef=workspace://SpacesStore/541e29ae-c160-4c35...");

    driver.findElement(By.id("template_x002e_node-header_x002e_document-details_x0023_default-quickshare")).click();

    String cod = driver.findElement(By.id("template_x002e_node-header_x002e_document-details_x0023_default-quickshare-input")).getAttribute("value");

    System.out.print(cod.split("/")[5]);

    driver.close();

    }

   

}

View answer in original post

12 REPLIES 12

angelborroy
Community Manager Community Manager
Community Manager

Quizá estés algo lejos de poder acometer esta funcionalidad.

Te dejo un trozo de código por si puede serte de ayuda.

1. La invocación al servicio para compartir el documento.

public SharedResponse shareDocument(String nodeRef) throws Exception {

alfrescoConnector.beginTransaction();

SharedResponse sr = null;

HttpClient httpClient = new DefaultHttpClient();
httpClient.getParams().setParameter("http.protocol.version", HttpVersion.HTTP_1_1);
httpClient.getParams().setParameter("http.protocol.content-charset", "UTF-8");

String nodeId = nodeRef.substring(nodeRef.lastIndexOf("/") + 1, nodeRef.length());

HttpPost postMethod = new HttpPost(alfrescoConnector.getUrl() + "internal/shared/share/workspace/SpacesStore/" + nodeId + "?alf_ticket=" + alfrescoConnector.getValidTicket());

HttpResponse response = httpClient.execute(postMethod);

if (response.getStatusLine().getStatusCode() == 200) {
BufferedReader br = new BufferedReader(new InputStreamReader((response.getEntity().getContent())));
sr = JsonBean.fromJson(br, SharedResponse.class);
} else {
throw new Exception (response.getStatusLine().getStatusCode() + ": " + response.getStatusLine().getReasonPhrase());
}


alfrescoConnector.endTransaction();

return sr;

}

2. Como obtener el ticket de conexión (es el que usa el "alfrescoConnector.beginTransaction()" de arriba)

 private String alfrescoLogin() throws Exception {

String alfrescoTicket = "";

AlfrescoLoginUser au = new AlfrescoLoginUser();
au.setUsername(username);
au.setPassword(password);

HttpClient httpClient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost(url + "login");

StringEntity input = new StringEntity(au.getJson());
input.setContentType("application/json");
postRequest.setEntity(input);

HttpResponse response = httpClient.execute(postRequest);

if (response.getStatusLine().getStatusCode() == 200) {
BufferedReader br = new BufferedReader(new InputStreamReader((response.getEntity().getContent())));
AlfrescoTicket at = JsonBean.fromJson(br, AlfrescoTicket.class);
alfrescoTicket = at.getData().getTicket();
} else {
throw new Exception (response.getStatusLine().getStatusCode() + ": " + response.getStatusLine().getReasonPhrase());
}

httpClient.getConnectionManager().shutdown();

logger.info("Alfresco Login: " + alfrescoTicket);

return alfrescoTicket;

}

Si tengo tiempo en el futuro publicaré un cliente complete para la API REST de Alfresco.

Hyland Developer Evangelist

wifer
Champ on-the-rise
Champ on-the-rise

Bueno logré mi propósito, aunque no tan funcional, pero funciona

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

/**

*

* @author Fernando Bustos

*/

public class Pruebados {

    /**

     * @param args the command line arguments

     */

    public static void main(String[] args) {

        // TODO code application logic here

        System.setProperty("webdriver.chrome.driver", "D://chromedriver.exe");

    // Initialize browser

    WebDriver driver=new ChromeDriver();

    // Open

    driver.get("http://localhost:8080/share");

    driver.findElement(By.id("page_x002e_components_x002e_slingshot-login_x0023_default-username")).sendKeys("usuario");

    driver.findElement(By.id("page_x002e_components_x002e_slingshot-login_x0023_default-password")).sendKeys("contraseña");

    driver.findElement(By.id("page_x002e_components_x002e_slingshot-login_x0023_default-submit-button")).click();

    driver.get("http://localhost:8080/share/page/document-details?nodeRef=workspace://SpacesStore/541e29ae-c160-4c35...");

    driver.findElement(By.id("template_x002e_node-header_x002e_document-details_x0023_default-quickshare")).click();

    String cod = driver.findElement(By.id("template_x002e_node-header_x002e_document-details_x0023_default-quickshare-input")).getAttribute("value");

    System.out.print(cod.split("/")[5]);

    driver.close();

    }

   

}

Hola, Soy nuevo en la comunidad y estoy comenzando apenas con la plataforma de alfresco. Logré conectar mi sistema con alfresco y por medio de las APIS logré obtener la url publica de una imagen.

Mi duda es que obtengo una página donde se ve una pagina con los logos de alfresco y en el centro mi imagen pero necesito obtener la ruta de la pura imagen. Es decir la ruta del archivo compartido sin que se vea toda una página sino la visualización de la imagen que quiero solamente.

Ejemplo subo dos imágenes.

"Imagen 1" es la imagen compartida de alfresco.

"Imagen 2"nseria la pura imagen y es como quisiera verla.

Espero respuesta, Gracias.

imageImagen 1

imageImagen 2