0

C# API サンプルの修正版を使用して、既存のワークフロント (AtTask) タスクにタスクを追加しています。また、添付ファイルをアップロードおよびダウンロードしたいと考えています。

ドキュメントから、アップロードは 2 段階のプロセスであることがわかります。ステップ 1 でファイルをアップロードし、ステップ 2 でアップロードしたファイルをタスクに添付します。2 番目のステップの実行方法をある程度理解しています。ファイル名、ハンドル (アップロードから)、オブジェクト タイプ (TASK)、オブジェクト ID、および currentVersion を含む JSON トークンを投稿します。私が理解していないのは、ファイルの実際のアップロードであるステップ 1 です。

タスクに添付する必要がある PDF ファイルを作成しています。タスクが完了すると、ダウンロードする必要がある新しいドキュメントが追加されます。

アップロードまたはダウンロードを実行するための C# コードを持っている人はいますか?

これまでの私のコードは次のとおりです。

public JToken DoUpload(string path, string opportunityID, string description, params string[] parameters)
{
    List<string> list = parameters.ToList();

    if (!path.StartsWith("/"))
    {
    path = "/" + path;
    }
    string fullUrl = url + path + ToQueryString(parameters);
    string boundary = "------" + DateTime.Now.Ticks.ToString("x");

    WebRequest request = HttpWebRequest.CreateDefault(new Uri(fullUrl));
    request.ContentType = "multipart/form-data; boundary=" + boundary;
    request.Method = "POST";

    using (var requestStream = request.GetRequestStream())
    {
    using (var writer = new StreamWriter(requestStream))
    {
        writer.WriteLine(string.Format("Content-Disposition: form-data; name=\"{0}\" filename=\"{1}\"",  "uploadedFile", "RFQ" + opportunityID + ".html"));
        writer.WriteLine("Content-Type: text/html; charset=UTF-8");
        writer.WriteLine();
        writer.WriteLine(description);

        using (WebResponse response = request.GetResponse())
        {
        using (Stream responseStream = response.GetResponseStream())
        {
            return ReadResponse(responseStream);
        }
        }
    }
    }
}
4

2 に答える 2

0

最初のステップは、handel を取得することです。これは、POST /attask/api/upload に対して行う他の API 呼び出しと同じように行われます。これは、ファイルを含める場所です。Workfront(AtTask) の一時フォルダーにアップロードされます。 、Workfront はハンドルを返します。次に、ハンドルを含むタスクを更新するための 2 番目のステップを実行すると、ファイルがポストされます。

詳細については、https://developers.attask.com/api-docs/およびhttps://developers.attask.com/api-docs/code-samples/をご覧ください。

于 2015-03-03T21:08:52.727 に答える