Uploading a large attachment using Microsoft Graph

I am trying to upload a large (> 4mb) attachment to an existing message in Office 365. I am following these instructions: https://docs.microsoft.com/en-us/graph/outlook-large-attachments?tabs=http

I have successfully created the upload session, and obtained a uploadUrl value that looks legitimate, it roughly matches the example in the documentation. Then I start my PUT to this url, for the first byte range that I've selected. I'm sure I'm setting the Content-Type, Content-Length and Contact-Range headers correctly. My problem is that I get http 401 (Unauthorized) in response. The error header returned is "The audience claim value is invalid for current resource..." and it regurgitates my url and it looks intact.

My theory is that I need to add another API permission to my application. I already have mail read.write, and that allows me to create a < 4mb attachment. If I need another permission, which one? Or do I have some other problem?

1 answer

  • answered 2020-01-14 07:42 Martin Johansson

    According to this documentation page on Resumable Uploads, you'll need any of Files.ReadWrite, Files.ReadWrite.All or Sites.ReadWrite.All permissions for a Delegated Work account. If you're using an Application token, then you need Sites.ReadWrite.All permission.