Экспорт файлов из Basecamp
Я долго искал, как получить файлы из Basecamp, и до сих пор это кажется "невыполнимой миссией", но я хотел спросить Здесь:
есть ли способ получить файлы из проектов Basecamp, и если есть, то как?
спасибо заранее.
редактировать: я имею в виду, как получить загруженные файлы. Вы можете экспортировать все данные проекта кроме файлов, которые вы загрузили туда.
9 ответов
API BaseCamp предлагает полный доступ, включая файлы.
- документация API Basecamp http://developer.37signals.com/basecamp/
- список оберток / библиотек http://developer.37signals.com/
Если у вас есть какие-либо знания об отдыхе, вы сможете вытащить любые/все данные (ограничение по модулю) вручную, а затем сделать с ним все, что захотите.
кстати, если вы пишете инструмент, который позволяет мне перемещать проект с одного счета на другой, я заплачу за это хорошие деньги!
вы можете экспортировать все из Basecamp, используя следующие шаги.
- войдите в систему с помощью Chrome.
- копировать заголовок Cookie из документа страницы запрос в инструментах разработчика Chrome.
wget --mirror -e robots=no --reject logout --no-cookies 'http://your-subdomain.basecamphq.com' --header <pasted-cookie-header>
ответ Мэтта Макклюра был точен, но пара вещей удержала меня;
чтобы найти необходимый файл cookie в
Chrome
инструменты разработчика, нажмите на кнопкуNetwork
значок сверху, а затемHeaders
tab.скопируйте весь раздел cookie из , включая
'Cookie:'
метка-
вставить всю строку с кавычками, где Мэтт указал
<pasted-cookie-header>
as следует;wget --mirror -e robots=no --reject logout --no-cookies 'http://your-subdomain.basecamphq.com' --header 'Cookie: session_token=c6a1ea88a0187b88025e; transition_token=BAhbB2kDA0VjSXU6CVRpbWUNqB...'
(я сократил строку cookie для ясности)
и Мэтт, и Питер уже предложили использовать wget --mirror
который я думаю, что это самое простое решение. Тем не менее, я не смог правильно скопировать куки из Google Chrome.
вместо этого я пошел в немного другом направлении и используется Chrome cookie.расширение экспорта txt чтобы скопировать все куки в виде обычного текста в куки.txt-файл.
моя команда wget тогда выглядела так:
wget --mirror -e robots=no --reject logout 'http://yourdomain.basecamphq.com' --load-cookies cookies.txt
дополнительное примечание для пользователей Mac: wget
смогите легко быть установлено с доморощенного:
brew install wget
basecamp предлагает вам экспортировать ваши проекты в XML, HTML - и есть также способ получить его в PDF. эту информацию можно найти в разделе справки/faq basecamp:http://basecamphq.com/help/general#exporting_data
подробнее об экспорте PDF:http://37signals.blogs.com/products/2008/02/export-a-baseca.html
использовать инструмент для Windows.
в пробном режиме этот инструмент позволит загрузить три проекта из базы, перечислит все проекты на вашей базовой учетной записи после входа в систему с помощью учетных данных basecamp.
- импортировать проект Basecamp Classic в новый Basecamp
- экспорт данных из Нового Basecamp
- ждать
- получить по электронной почте, что это сделано и скачать zip-файл
вы можете настроить интеграцию между Basecamp и Dropbox для автоматической передачи всех вложений Basecamp в специальную папку Dropbox:
http://blog.cloudwork.com/your-automatic-basecamp-dropbox-backup-step-by-step/
интеграция выполняется CloudWork, который имеет бесплатный план, поэтому, если вы не думаете, что будете создавать резервные копии более 100 вложений в месяц, он может сделать это бесплатно. Выше этого есть тарифный план.
Если на вашем компьютере установлен php, сохраните этот код в 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);
}
?>
затем обновите следующие строки с правильной информацией:
$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]';
затем сохраните и выполните эту команду:php basecampfilevac.php
это измененный скрипт, первоначально из Rettger Galactic