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

Use XML to remove a global course navigation menu item.

Jump to solution

We are looking into adding Microsoft Teams classes to our environment. By default and not configurable this adds itself to EVERY singe course in Canvas. I believe I can use XML to make this disabled in each course menu navigation which would them require teachers to enable it if they wanted to use it. 

I found this XML tool that could be used to do this for us: https://www.edu-apps.org/build_xml.html

However, I am unsure how to find the LTI Launch URL? 

Would anyone be able to lend some assistance here? 

 

 

Labels (2)
0 Kudos
1 Solution

Accepted Solutions
matthew_buckett
Community Contributor

No problem, I've just documented this for our team internally so making a post here was easy.

Ok, curl ( https://curl.se/ ) is a command line utility that allows you to execute API requests against Canvas. The reason I suggested it is that lots of examples in the Canvas API documentation use it.

If you haven't done anything with curl before this may not be the best approach and you might want to use a tool list Postman ( https://www.postman.com/ ) to send the API request to Canvas, but that has a steep learning curve too.

View solution in original post

4 Replies
matthew_buckett
Community Contributor

The MS Teams Classes LTI uses LTI 1.3 and the XML builder is for LTI 1.1 so you won't be able to use the XML builder on Edu Apps.

We've make the LTI tool disabled by default and to do this you have to use the Canvas API (the External Tools API) . You first need to enable the MS Teams Classes developer key and add the LTI tool using the client ID. At this point the MS Teams Classes LTI will have an external tool ID, but will be enabled in all courses.

To disable it by default you need to find the external tool ID and you can do this by searching in the account (1 in this example) you added the tool to (replacing instance with the name of your instance):

https://instance.instructure.com/api/v1/accounts/1/external_tools?search_term=classes 

The id should be at the start of the response (eg 1234 here):

[{"id":1234,"domain":null,"url":"https://teams.micr.......

Then once you've found the ID of the tool you need to update it's configuration, I used curl for this and used a command like:

curl -H 'Authorization: Bearer myToken' https://instance.instructure.com/api/v1/accounts/1/external_tools/1234 -X PUT -F 'course_navigation[default]=disabled'

You will need to replace:

  •  myToken with an access token linked to an account admin
  • 1234 with the ID of the MS Teams Classes LTI
  • instance with the name of your Instructure instance.

I would test this outside of your main instance so that you understand the process before attempting this on your production instance. 

wojcika
Community Participant

@matthew_buckett  this is LITERALLY the best response I have ever gotten on a question in this forum. Thank you so much! I felt like I was going in the wrong direction and you explained it very well. 

I do have one additional question. Once I have the information and my curl command formatted, where do I add this information to our Canvas instance? 

matthew_buckett
Community Contributor

No problem, I've just documented this for our team internally so making a post here was easy.

Ok, curl ( https://curl.se/ ) is a command line utility that allows you to execute API requests against Canvas. The reason I suggested it is that lots of examples in the Canvas API documentation use it.

If you haven't done anything with curl before this may not be the best approach and you might want to use a tool list Postman ( https://www.postman.com/ ) to send the API request to Canvas, but that has a steep learning curve too.

View solution in original post

wojcika
Community Participant

@matthew_buckett Amazing! I was able to turn it off in our test environment using Postman. I cannot thank you enough for getting me there!

For those of you who stumble upon this page. You only have the run this once to turn it off for all current and future courses. One catch, any course that has it on will have it turned off after this command has run.