I've got an account level external tool that I have now disabled course navigation by default. This is good for the vast majority of courses, but I've got a list of ~1000 courses that I would like to have the course navigation re-enabled. Looking into the api, I don't see a way of doing this, due to the tool being account level instead of course level (basically, at account level it seems changing that kind of default is 'all or nothing'). Looking at what goes on when I save the courses navigation items from the
/courses/:id/settings page, I see that a POST call is being made to the
/courses/:id/update_nav path with url encoded form data consisting of
tabs_json with a list of ids and a
"hidden":true flag set on them if they are supposed to be hidden. I tried to replicate this kind of POST outside of canvas using postman and regular api authentication, but I can't get it to work.
Does anyone have any ideas of how to get this to work? I suppose I could look into creating new, course level external tools replicating the account level tool on just the list that I have, and then disabling the account level one, but I'd prefer to avoid that since the list I have might not be comprehensive, and users should be able to show/hide the tools if they need to, regardless if they are in this list of courses or not.
Solved! Go to Solution.
Just one of those Canvas things you have to get used to --- want an endpoint for "Course Navigation" or "Course Menu" or similar --- isn't it obvious? --- it will be called "Tabs". LOL.
I mean, I kind of understand the reasoning behind it, with the same functionality across accounts/courses/groups being abstracted into a separate api, but at least provide some links! "Looking for course navigation/menu api while on the Courses api? He's a link to Tabs!
A trick I use sometimes is the "All Resources Reference" link. Then I can use the browser's find to look for keywords. When you do that with "Navigation", you get the main heading "Navigation", which is under External Tools, a whole bunch of stuff in the middle dealing with external tools, and then a couple of hits toward the bottom, which are the ones we really want.
In fairness, this approach often doesn't work because I'm looking for the wrong word like "module progress" instead of "module completion."