Obtener Enlace Público al crear documento

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Alfresco Employee

Re: Obtener Enlace Público al crear documento

Jump to solution

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.

Software Engineer in Alfresco Search Team.
Highlighted
Active Member

Re: Obtener Enlace Público al crear documento

Jump to solution

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 solution in original post

Highlighted
Active Member II

Re: Obtener Enlace Público al crear documento

Jump to solution

Hola, Soy nuevo en la comunidad y estoy comenzando apenas con la plataforma de alfresco. Si pudieras comentarme, el código que publicaste para generar el link público de un archivo, ¿Dónde es que lo pones, es decir: el lugar conde lo agregaste para que funcione.

Espero respuesta, Gracias.