[英]Add attachments in a task using ASANA API in C sharp or VB .Net
Did anyone add attachments in a task using ASANA API? 是否有人使用ASANA API在任务中添加附件? I am not getting much resources in C sharp or VB .Net. 我在C Sharp或VB .Net中没有太多资源。 I can Create Task, Fetch tasks, Fetch Users, Fetch Recent Events. 我可以创建任务,获取任务,获取用户,获取近期事件。 But failed to attach any attachment in Task. 但是未能在Task中附加任何附件。 Please help. 请帮忙。
I was using following code: 我正在使用以下代码:
Dim json As String
Dim bytes As Byte()
Dim url As String = "https://app.asana.com/api/1.0/tasks/" & TaskID & "/attachments"
Dim req As HttpWebRequest
Dim reqStream As Stream
Dim authInfo As String
Dim TaskData As New Task
Try
authInfo = apiKey & Convert.ToString(":")
Dim boundary As String = "----------------------------" + DateTime.Now.Ticks.ToString("x")
Dim formData As NameValueCollection = New NameValueCollection()
Dim postDataStream As Stream = GetPostStream(FilePath, formData, boundary)
req = DirectCast(WebRequest.Create(url), HttpWebRequest)
req.Method = WebRequestMethods.Http.Post
req.ContentType = "multipart/form-data"
req.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(Encoding.[Default].GetBytes(authInfo)))
req.ContentLength = postDataStream.Length
reqStream = req.GetRequestStream()
''reqStream.Write(postDataStream, 0, postDataStream.Length)
postDataStream.Position = 0
Dim buffer As Byte() = New Byte(1023) {}
Dim bytesRead As Integer = postDataStream.Length
While bytesRead <> 0
bytesRead = postDataStream.Read(buffer, 0, buffer.Length)
reqStream.Write(buffer, 0, bytesRead)
End While
postDataStream.Close()
Dim response As HttpWebResponse = DirectCast(req.GetResponse(), HttpWebResponse)
Dim res As String = New StreamReader(response.GetResponseStream()).ReadToEnd()
Console.WriteLine(res)
Console.ReadLine()
reqStream.Close()
Dim finalString As String = res.Remove(0, 8)
finalString = finalString.Remove((finalString.Length - 1))
Dim newtask As AsanaObjectId = JsonConvert.DeserializeObject(Of AsanaObjectId)(finalString)
Return newtask
Catch ex As WebException
Dim response As HttpWebResponse = DirectCast(ex.Response, HttpWebResponse)
Dim resp As String = New StreamReader(ex.Response.GetResponseStream()).ReadToEnd()
Dim obj As Object = JsonConvert.DeserializeObject(resp)
Dim messageFromServer As String = CInt(response.StatusCode).ToString & "-" & vbLf & response.StatusDescription & "-" & obj.ToString
MessageBox.Show(messageFromServer)
End
Catch ex As Exception
MessageBox.Show(ex.Message)
End
End Try
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
When uploading attachments to a task via the Asana API make sure that you are setting the content type of the request to "multipart/form-data" including the actual file's data and not a stream of bytes. 通过Asana API将附件上传到任务时,请确保将请求的内容类型设置为“ multipart / form-data”,包括实际文件的数据而不是字节流。
https://asana.com/developers/api-reference/attachments https://asana.com/developers/api-reference/attachments
Here is an example in C # 这是C#中的示例
using System;
using System.Net;
using System.Text;
class AttachFile
{
static void Main ()
{
Uri uri = new Uri("https://app.asana.com/api/1.0/tasks/<TASK_ID>/attachments");
string filePath = @"<FILE_PATH>";
WebClient client = new WebClient();
string authInfo = "<API_KEY>" + ":";
authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
client.Headers["Authorization"] = "Basic " + authInfo;
client.UploadFile(uri, filePath);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.