Degraded AWS performance is currently impacting some Canvas users in the North American region. Check Canvas Status for updates.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
d_tan
Community Participant

POST Submission via API result in 401 Unauthorized

Jump to solution

I am trying to develop a C# program that will post files as student assignment submissions into Canvas via Canvas API.

Details:

  • The token is from an account admin.
  • The course is published and so is the assignment.
  • The assignment is not due yet.
  • Fail on both production Canvas and Test Canvas instance.
  • The same code works for other POST method like create a new assignment.
  • Form data is
         var formData = new Dictionary<string, string>()

            {

                {"name", "sampleFile.pdf"},

                {"size", fileInfo.Length.ToString()},

                {"content_type", "application/pdf"}

            };

  • Same error (401) returns from the live api page, but I guess that was not suppose to work there since the form data about the file are missing.
  • In addition to token, I also set the following headers
         httpWebRequest.Method = "POST";

            httpWebRequest.Host = CanvasHost;

            httpWebRequest.ContentType = "application/x-www-form-urlencoded";

            httpWebRequest.Accept = "application/json";

            httpWebRequest.ContentLength = byteArray.Length;

  • the form data is write to the request in bytes that are in UTF8 encoding.

Any suggestions?

Doug

Labels (1)
1 Solution

Accepted Solutions
cmoore2
Community Participant

I'm assuming that you're trying to post assignments on behalf of another user.  If so, you should read the masquerading docs.

View solution in original post

1 Reply
cmoore2
Community Participant

I'm assuming that you're trying to post assignments on behalf of another user.  If so, you should read the masquerading docs.

View solution in original post