2013-02-26 4 views
1

Я могу создавать задания в Асане, используя API-интерфейс Asana (JAVA).Как создать новое рабочее пространство в Асане?

import org.apache.commons.httpclient.HttpClient; 
    import org.apache.commons.httpclient.UsernamePasswordCredentials; 
    import org.apache.commons.httpclient.auth.AuthScope; 
    import org.apache.commons.httpclient.methods.PostMethod; 
    import org.apache.commons.httpclient.methods.PutMethod; 

    import java.io.BufferedReader; 
    import java.io.InputStreamReader; 

    class Main { 
     public static void main(String[] args) { 
      String data = "{" + 
        " \"data\": {" + 
        "  \"workspace\": 4210637464884," + 
        "  \"name\": \"Task 2 this is it\"," + 
        "  \"notes\": \"NOTES_ABOUT_TASK_GO_HERE\"," + 
        "  \"assignee\": \"[email protected]\"" + 
        " }," + 
        " \"options\": {" + 
        "  \"fields\": \"name\"" + 
        " }" + 
        "}"; 

      HttpClient client = new HttpClient(); 
      client.getParams().setAuthenticationPreemptive(true); 
      client.getParams().setParameter("http.useragent", "Test Client"); 
      client.getState().setCredentials(
        new AuthScope("app.asana.com", 443, "realm"), 
        new UsernamePasswordCredentials("<APIKEY>", "") 
      ); 

      BufferedReader br = null; 
      PostMethod method = new PostMethod("https://app.asana.com/api/1.0/tasks"); 
      method.setDoAuthentication(true); 

      try { 
       method.setRequestBody(data); 
       int returnCode = client.executeMethod(method); 
       System.out.println("Return code: " + returnCode); 
       br = new BufferedReader(new InputStreamReader(method.getResponseBodyAsStream())); 
       String readLine; 
       while (((readLine = br.readLine()) != null)) { 
        System.out.println(readLine); 
       } 
      } catch (Exception e) { 
       System.out.println(e.getMessage()); 
      } finally { 
       method.releaseConnection(); 
       if (br != null) try { 
        br.close(); 
       } catch (Exception fe) { 
        System.err.println(fe); 
       } 
      } 
      createNewWorkSpace(); 

     } 
    } 

Он отлично работает. Теперь я хочу создать рабочее пространство. Как? Я пытался использовать

PutMethod method = new PutMethod("https://app.asana.com/api/1.0/workspaces"); 
String data = "{" + 
      " \"data\": {" + 
      " \"id\": 1234," + 
      " \"name\": \"Everyone's Favorite Workspace\"" + 
      " }}"; 

И я получаю Код возврата: 404 { "ошибки": [{ "сообщение": "Нет согласования маршрута для запроса"}]}

Пожалуйста, помогите мне !

ответ

0

Асана API не поддерживает создание новых рабочих пространств. В настоящий момент он поддерживает только обновление «конкретной существующей рабочей области», и даже это ограничивается обновлением имени рабочей области.

Согласно документации API Асана: https://asana.com/developers/api-reference/workspaces

PS Я редактировал свой ключ API от должности только в случае, если это было на самом деле ключ реального API!

+0

Upvote (to zero!), Поскольку это все еще кажется правдой –

Смежные вопросы