0

シンプルな Salesforce と Asana の統合を試みています。多くの機能が動作していますが、ワークスペースへのタグの追加に問題があります。addTag メソッドに関するドキュメントが見つからないので、何が必要かを推測しています。

次の JSON をhttps://app.asana.com/api/1.0/workspaces/WORKSPACEID/tasksに投稿すると:

{"data":{"name":"MyTagName","notes":"Test Notes"}}

タグは Asana で作成されますが、メモと名前フィールドは空白です。もう少し派手にして投稿しようとすると:

{"data":{"name":"MyTagName","notes":"Test Notes","followers":[{"id":"MY_USER_ID"}]}}

私は受け取ります:

{"errors":[{"message":"無効なフィールド: {\"data\":{\"name\":\"MyTagName\",\"notes\":\"Test Notes\",\"フォロワー\":[{\"id\":\"MY_USER_ID\"}]}}"}]}

バックスラッシュは、投稿によってリクエストが変更されていることを意味している可能性があると考えていますが、デバッグ出力には、投稿の前に適切にフォーマットされた json 文字列が表示されます。

サンプルコード:

JSONGenerator jsongen = JSON.createGenerator(false);

jsongen.writeStartObject();
jsongen.writeFieldName('data');
jsongen.writeStartObject();
jsongen.writeStringField('name', 'MyTagName');
jsongen.writeStringField('notes', 'Test Notes');
jsongen.writeFieldName('followers');
jsongen.writeStartArray();
jsongen.writeStartObject();
jsongen.writeStringField('id', 'MY_USER_ID');
jsongen.writeEndObject();
jsongen.writeEndArray();
jsongen.writeEndObject();
jsongen.writeEndObject();

String requestbody = jsongen.getAsString();

HttpRequest req = new HttpRequest();
req.setEndpoint('https://app.asana.com/api/1.0/workspaces/WORKSPACEID/tags');
req.setMethod('POST');

//===Auth header created here - working fine===
req.setBody(requestbody);

Http http = new Http();
HTTPResponse res = http.send(req);

return res.getBody();

どんな助けでも感謝します。JSON と Asana API の使用経験がありません。

4

4 に答える 4

2

問題は、間違ったエンドポイントに投稿していたことです。Workspaces/workspaceid/tags の代わりに、/tags を使用し、workspaceid をリクエストの本文に含める必要がありました。

于 2012-07-01T20:53:58.897 に答える
1

ああ、そうすれば、APIができることについて言及していない、またはフォロワーが読み取り専用であると主張しているにもかかわらず、タグを追加したり、フォロワーを設定したりすることもできます。

したがって、興味のある他の人のために要約すると、エンドポイントhttps://app.asana.com/api/1.0/tagsにPOSTすると、次のようなタグを作成できます。

{"data":{"workspace":1234567、 "name": "newtagname"、 "followers":[45678、6789]}}

ここで、1234567はワークスペースIDであり、45678と6789は新しいフォロワーです。

于 2012-07-01T21:30:52.963 に答える
1

この質問を投稿して以来、Asana の API と開発者はタグを導入しました。あなたのドキュメントは、あなたの質問に対する答えをかなり明確に示しています:

https://asana.com/developers/api-reference/tags

于 2013-03-29T20:28:41.130 に答える
0

私はあなたの質問に少し混乱しています。「タグを追加する方法」という質問ですが、質問の前半ではタスクの追加について説明しています。ここで説明する問題は、タスクのフォロワーを設定しようとしているが、AsanaのAPIドキュメントによると、フォロワーフィールドは現在読み取り専用であるということです。そのため、エラーが発生します。現在、APIでフォロワーを設定することはできません。

質問の2番目の部分(サンプルコードを含む)は、タグを追加しようとしているように見えます。ただし、現時点では、Asana APIはこれをサポートしていません(少なくともAPIドキュメントによると)。既存のタグを更新することはできますが、追加することはできません。

つまり、要約すると、現時点では、APIではタスクにフォロワーを追加したり、新しいタグを作成したりすることはできません。

于 2012-07-01T20:36:34.623 に答える