package com.asana.examples; import com.asana.Client; import com.asana.models.Attachment; import com.asana.models.Project; import com.asana.models.Task; import com.asana.models.Workspace; import java.io.ByteArrayInputStream; import java.util.Arrays; import java.util.Date; import java.util.List; /** * API Key Instructions: * <p> * 1. set your ASANA_API_KEY environment variable to the API key found in Asana Account Settings */ public class ExampleCreateTaskAndUpload { public static void main(String[] args) throws Exception { if (System.getenv("ASANA_API_KEY") == null) { throw new Error("Please set the ASANA_API_KEY environment variable."); } // create a client with your Asana API key Client client = Client.basicAuth(System.getenv("ASANA_API_KEY")); // find your "Personal Projects" project Workspace personalProjects = null; for (Workspace workspace : client.workspaces.findAll()) { if (workspace.name.equals("Personal Projects")) { personalProjects = workspace; break; } } // create a "demo project" if it doesn't exist List<Project> projects = client.projects.findByWorkspace(personalProjects.id).execute(); Project demoProject = null; for (Project project : projects) { if (project.name.equals("demo project")) { demoProject = project; break; } } if (demoProject == null) { demoProject = client.projects.createInWorkspace(personalProjects.id) .data("name", "demo project") .execute(); } // create a task in the project Task demoTask = client.tasks.createInWorkspace(personalProjects.id) .data("name", "demo task created at " + new Date()) .data("projects", Arrays.asList(demoProject.id)) .execute(); System.out.println("Task " + demoTask.id + " created."); // add an attachment to the task Attachment demoAttachment = client.attachments.createOnTask( demoTask.id, new ByteArrayInputStream("hello world".getBytes()), "upload.txt", "text/plain" ).execute(); System.out.println("Attachment " + demoAttachment.id + " created."); } }