2010-01-18 14 views
9

que he estado buscando durante mucho tiempo cómo obtener archivos de Basecamp y hasta ahora parece una misión imposible, pero yo quería preguntar aquí también:Exportación de archivos de Basecamp

¿Hay cualquier forma de obtener archivos de los proyectos de Basecamp y, si hay alguno, ¿cómo?

Gracias de antemano.

Editado: me refiero a cómo obtener los archivos cargados. Puede exportar todos los datos del proyecto excepto los archivos que ha cargado allí.

+0

No hay respuesta todavía ??? – Sayuj

+0

Actualización: Me puse en contacto con el servicio al cliente de BaseCamp y se complacieron en comprimir todos los archivos y agregar un proyecto de "Servicio al cliente" que no cuenta para mi límite de almacenamiento. No es una solución elegante, pero funcionó. El archivo fue organizado por carpetas, con cada proyecto en una carpeta separada. –

+0

He votado a favor de todas las respuestas que probablemente funcionen hoy. Lamentablemente, no tengo tiempo para verificar cada uno de ellos, ya que han pasado casi 3 años desde que publiqué la pregunta y ya no estoy a cargo de ese proyecto, pero en base a los votos de otras personas, supongo que están bien. Me gusta el wget + cookie thingie (bueno, realmente), sin embargo, aceptaré la respuesta sobre API porque refleja lo que es válido hoy, sin hacks/workarounds desagradables. –

Respuesta

3

La API BaseCamp pretende ofrecer acceso completo incluyendo archivos.

Si usted tiene algún conocimiento de descanso que será capaz de sacar cualquier/todos los datos de salida (velocidad de módulo limitante) de forma manual y luego haz lo que quieras con él.

Por cierto, si escribes una herramienta que me permite mover un proyecto de una cuenta a otra, ¡pagaré un buen dinero por eso!

+0

Hace 3 años no era posible hacerlo, de lo contrario la pregunta no se publicaría aquí (fue el último recurso). Como ya expliqué en el comentario de la pregunta, acepté su respuesta porque es la más conveniente y la de "cómo se debe hacer" a partir de hoy. Lamentablemente, el objetivo no fue desplazar proyectos de una cuenta a otra :) –

1

basecamp le ofrece exportar sus proyectos en XML, HTML, y también hay una forma de obtenerlo en PDF. esta información se puede encontrar en la sección de ayuda/Preguntas del campo base: http://basecamphq.com/help/general#exporting_data

más sobre la exportación de PDF: http://37signals.blogs.com/products/2008/02/export-a-baseca.html

+0

He editado la pregunta. Quiero decir: cómo obtener los archivos que ha subido a su proyecto (s) en Basecamp. No se proporcionan a través de API, o no tengo conocimiento de que se pueda hacer. –

+0

fyi, el método de exportación de PDF vinculado requiere un servidor ColdFusion (no me di cuenta de que la gente aún usa CFM pero, myeup) – cyphunk

12

Puede exportar todo desde Basecamp siguiendo estos pasos.

  1. Inicie sesión usando Chrome.
  2. Copiar encabezado de cookie desde un documento de página solicitud en las herramientas de desarrollo de Chrome.
  3. wget --mirror -e robots=no --reject logout --no-cookies 'http://your-subdomain.basecamphq.com' --header <pasted-cookie-header>
+0

Ahora que (en 2012) Basecamp se convirtió en Basecamp Classic y el nuevo Basecamp es diferente, ¿este método aún funciona? ¿Funciona si no tienes un subdominio? – LarsH

1

Uso this tool para Windows.

En modo de prueba, esta herramienta permitirá que se descarguen tres proyectos de la base, enumerará todos los proyectos en su cuenta base después de iniciar sesión con las credenciales de su basecamp.

+0

Según su sitio web, el producto (paracaídas) está descontinuado y ya no se puede descargar. – Julian

9

La respuesta de Matt McClure fue acertada pero un par de cosas me sostuvieron;

  1. Para encontrar la cookie se requiere en Chrome Herramientas para desarrolladores, haga clic en el icono de Network en la parte superior y luego Headers pestaña.

  2. Copia toda la sección de la galleta de la sección 'request headers', incluida la etiqueta 'Cookie:'

  3. pegue toda la cadena con comillas, donde mate indicado <pasted-cookie-header> como sigue;

    wget --mirror -e robots=no --reject logout --no-cookies 'http://your-subdomain.basecamphq.com' --header 'Cookie: session_token=c6a1ea88a0187b88025e; transition_token=BAhbB2kDA0VjSXU6CVRpbWUNqB...'

(He acortado la cadena de galletas para mayor claridad)

+0

No puedo identificar session_token y transition_token en mi cookie, ¿alguna idea? – James

0
  1. importación que Basecamp proyecto clásico a la nueva Basecamp
  2. Exportar datos
  3. de nuevo Basecamp
  4. Esperar
  5. Recibe el correo electrónico que está listo y descarga el archivo comprimido
0

Puede configurar una integración entre Basecamp y Dropbox para transferir automáticamente todos los archivos adjuntos de Basecamp en una carpeta Dropbox dedicado:

http://blog.cloudwork.com/your-automatic-basecamp-dropbox-backup-step-by-step/

La integración se realiza por CloudWork, que tiene un plan gratuito por lo tanto, si no cree que realizará copias de seguridad de más de 100 archivos adjuntos al mes, puede hacerlo de forma gratuita. Por encima de eso, hay un plan de precios.

1

Tanto Matt como Peter ya propusieron utilizar wget --mirror, que creo que es la solución más fácil que existe. Sin embargo, no pude copiar correctamente las cookies de Google Chrome.

En su lugar fui en una dirección ligeramente diferente y usé el Chrome cookie.txt export extension para copiar todas las cookies como texto sin formato a un archivo cookies.txt.

Mi comando wget entonces era la siguiente:

wget --mirror -e robots=no --reject logout 'http://yourdomain.basecamphq.com' --load-cookies cookies.txt 

Nota adicional para los usuarios de Mac: wget se puede instalar fácilmente con homebrew:

brew install wget 
0

Si tiene PHP instalado en su máquina, guardar este código para basecampfilevac.php:

<? 
// make sure the folder of the script is writeable (0777) 
ini_set('memory_limit', '-1');//keeps the script from timing out 

function BasecampCall($endPoint, $usePrefix = true) { 

    // From: http://prattski.com/2008/10/22/basecamp-api-examples-using-php-and-curl-get/ 
    $session = curl_init(); 

    $basecampId  = '[Your Basecamp Account Id Here]'; //this should be a number like 9999999, You can find it in the URL when you log into Basecamp. 
    $username  = '[Your Basecamp Username Here]'; 
    $password  = '[Your Basecamp Password Here]'; 
    $emailaddress = '[Your Basecamp Email Address Here]'; 

    $basecampUrl  = 'https://basecamp.com/' . $basecampId . '/api/v1/'; 

    curl_setopt($session, CURLOPT_URL, ($usePrefix == true ? $basecampUrl : "") . $endPoint); 
    curl_setopt($session, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
    curl_setopt($session, CURLOPT_HTTPGET, 1); 
    curl_setopt($session, CURLOPT_HEADER, false); 
    curl_setopt($session, CURLOPT_HTTPHEADER, array('Accept: application/json', 'Content-Type: application/json')); 
    curl_setopt($session, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($session, CURLOPT_USERAGENT, "MyApp (".$emailaddress.")"); 

    curl_setopt($session,CURLOPT_USERPWD, $username . ":" . $password); 

    if(ereg("^(https)",$request)) curl_setopt($session,CURLOPT_SSL_VERIFYPEER,false); 

    $response = curl_exec($session); 
    curl_close($session); 

    if($usePrefix){ 
     $r = json_decode($response); 
    } else { 
     $r = $response; 
    } 

    return $r; 
} 

$projects = BasecampCall('projects.json'); 

// For each project take name and id 
foreach($projects as $proj) { 

    $pr = array(
     "id" => (string)$proj->id, 
     "name" => (string)$proj->name 
    ); 

    // Retrieve the attachments 
    echo "\nSaving attachments for project: " . $pr['name'] . "...\n"; 

    @mkdir($pr['name']); 

    $filesArray = array(); 

    $n = 1; 
    do { 

     $attachments = BasecampCall("projects/" . $proj->id . "/attachments.json?page=" . $n); 

     if(count($attachments) > 0) { 

      foreach($attachments as $attachment) { 

       $file = pathinfo($attachment->name); 

       @file_put_contents($pr['name'] . "/" . $file['filename'] . (in_array($file['filename'], $filesArray) ? "-" . rand() : "") . "." . $file['extension'], BasecampCall($attachment->{'url'}, false)); 

       $filesArray[] = $file['filename']; 

       echo "Saving file " . $attachment->name . "...\n"; 
      } 
     } 

     $n++; 

    } while(count($attachments) == 50); 
} 
?> 

continuación, actualice las siguientes líneas con la información correcta:

$basecampId  = '[Your Basecamp Account Id Here]'; //this should be a number like 9999999, You can find it in the URL when you log into Basecamp. 
$username  = '[Your Basecamp Username Here]'; 
$password  = '[Your Basecamp Password Here]'; 
$emailaddress = '[Your Basecamp Email Address Here]'; 

continuación, guardar y ejecutar este comando: php basecampfilevac.php

Este es un script modificado originalmente de Rettger Galactic

Cuestiones relacionadas