10

Basecamp からファイルを取得する方法を長い間探していましたが、これまでのところ「ミッション インポッシブル」のように思えますが、ここでも質問したいと思います。

Basecamp プロジェクトからファイルを取得する方法はありますか?

前もって感謝します。

編集済み:アップロードされたファイルを取得する方法を意味します。そこにアップロードしたファイルを除くすべてのプロジェクト データをエクスポートできます。

4

9 に答える 9

12

次の手順を使用して、Basecamp からすべてをエクスポートできます。

  1. Chrome を使用してログインします。
  2. Chrome デベロッパー ツールのページ ドキュメント リクエストから Cookie ヘッダーをコピーします。
  3. wget --mirror -e robots=no --reject logout --no-cookies 'http://your-subdomain.basecamphq.com' --header <pasted-cookie-header>
于 2012-04-02T13:42:06.000 に答える
9

Matt McClure の答えは的を射ていましたが、いくつかのことが足を引っ張っていました。

  1. Chrome開発者ツールで必要な Cookie を見つけるには、Network上部のアイコンをクリックしてからHeadersタブをクリックします。

  2. セクションから、ラベル'request headers'を含むCookie セクション全体をコピーします。'Cookie:'

  3. 次のように、matt が示す場所に引用符を付けて文字列全体を貼り付け<pasted-cookie-header>ます。

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

(わかりやすくするために、Cookie 文字列を短くしています)

于 2012-05-29T11:32:50.630 に答える
3

BaseCamp APIは、ファイルを含むフルアクセスを提供することを目的としています。

RESTの知識がある場合は、すべてのデータを手動で引き出し(モジュロレート制限)、それを使って好きなことを行うことができます。

ちなみに、あるアカウントから別のアカウントにプロジェクトを移動できるツールを作成すれば、それにはかなりのお金を払うことになります。

于 2012-03-04T20:14:02.933 に答える
2

Matt と Peter はどちらもwget --mirror、最も簡単な解決策であると私が考える方法を使用することを既に提案しています。ただし、Google Chrome から Cookie を正しくコピーできませんでした。

代わりに、少し異なる方向に進み、Chrome の cookie.txt エクスポート拡張機能を使用して、すべての Cookie をプレーン テキストとして cookies.txt ファイルにコピーしました。

私の wget コマンドは次のようになりました。

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

Mac ユーザー向けの追加メモ:自作wgetで簡単にインストールできます:

brew install wget 
于 2013-08-16T04:14:27.633 に答える
1

basecampでは、プロジェクトをXML、HTMLでエクスポートできます。また、PDFで取得する方法もあります。この情報は、basecampのhelp / faqセクションにあります:http://basecamphq.com/help/general#exporting_data

PDFエクスポートの詳細:http://37signals.blogs.com/products/2008/02/export-a-baseca.html

于 2010-01-18T14:05:11.583 に答える
1

このツールは Windows で使用します。

試用モードでは、このツールを使用して base から 3 つのプロジェクトをダウンロードできます。basecamp の資格情報を使用してログインすると、base アカウントのすべてのプロジェクトが一覧表示されます。

于 2012-04-05T18:15:28.377 に答える
0

マシンに 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のスクリプトを修正したものです

于 2015-02-19T00:13:43.607 に答える
0

Basecamp と Dropbox の統合をセットアップして、Basecamp のすべての添付ファイルを専用の Dropbox フォルダーに自動的に転送できます。

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

統合は CloudWork によって行われます。CloudWork には無料プランがあるため、1 か月に 100 個を超える添付ファイルをバックアップしないと思われる場合は、無料で行うことができます. その上に、料金プランがあります。

于 2013-04-18T16:18:36.443 に答える
0
  1. Basecamp Classic プロジェクトを新しい Basecamp にインポートします
  2. 新しい Basecamp からデータをエクスポートする
  3. 待って
  4. 完了したというメールを受け取り、zip ファイルをダウンロードします
于 2013-02-19T20:07:05.117 に答える