[ARCHIVED] Need help with a PUT call to set notification preference in Canvas API that is failing (CURL & API)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am trying to set notification preferences in Canvas (instructure) LMS using CURL. I can get all the preferences so the User and communication channel is fine. I can put some other data but not a new notification preference. Eventually I would like to put a value for the category, but for now just trying to set one notification preference
**This command works fine - get the value of the notification preference**
curl.exe https://<myschool>.instructure.com/api/v1/users/33/communication_channels/38/notification_preferences/new_announcement -H "Authorization: Bearer <token>"
**RETURNS**
{"notification_preferences":[{"frequency":"never","notification":"new_announcement","category":"announcement"}]}
**This command works fine (example of a put via curl)**
curl.exe https://myschool.instructure.com/api/v1/courses/473/front_page -d wiki_page[body]=”something new” -X PUT -H "Authorization: Bearer token"
**This command fails - trying to put a new value for the notification preference**
curl.exe --verbose https://<myschool>.instructure.com/api/v1/users/33/communication_channels/38/notification_preferences/new_announcement -d notification_preferences[frequency]=”immediately” -X PUT -H "Authorization: Bearer <token>"
**ERROR in HTML:**
<p>
There was a problem with your last request.
You may have tried to perform an action after a long period of inactivity.
If that's the case, try going back, reloading the page you were working on, and resubmitting.
If not, please let us know what you were doing when the error happened.
</p>
**ERROR inside the CURL RESPONSE:**
HTTP/1.1 422 Unprocessable Entity
Any help is appreciated
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It doesn't explicitly state it, but in the GET requests there is a :user_id, and in the PUT requests it's just self and only self will work, even for yourself as an admin.
curl --verbose "https://*.instructure.com/api/v1/users/self/communication_channels/#/notification_preferences/new_announcement?notification_preferences[frequency]=immediately" -X "PUT" -H "Authorization: Bearer $token"
curl --verbose "https://*.instructure.com/api/v1/users/self/communication_channels/#/notification_preferences/new_announcement" -d "notification_preferences[frequency]=immediately" -X "PUT" -H "Authorization: Bearer $token"
This discussion post is outdated and has been archived. Please use the Community question forums and official documentation for the most current and accurate information.