Celebrate Excellence in Education: Nominate Outstanding Educators by April 15!
Found this content helpful? Log in or sign up to leave a like!
In our institution we use the Turnitin LTI and I am trying to get the turnitin_enabled and turnitin_settings from assignments configured to use Turnitin.
On Assignments - Canvas LMS REST API Documentation I find this information about it:
I have been testing this using the Live API in our production environment, but there is no Turnitin data returned, although we meet the criteria mentioned in the documentation.
What can be the reason of this and can it be fixed?
In May I have sent several tickets to Canvas Support (04346065, 04329919, 04323625) regarding this, but I have not received any help on this which is very frustrating.
I hope anyone can help me with this!
I also want to get info on which schools and departments are using Turnitin assignments in Canvas. As a Turnitin admin, I can get reports on which instructors are using Turnitin and a report using Course names, but these reports do not give me the course code or subaccount, which would tell me which school and department these courses are in.
It does not seem like the API can reach or identify assignments that use Turnitin with the Canvas-native Plagiarism Framework. (https://community.canvaslms.com/t5/Canvas-Question-Forum/How-to-create-a-TurnItIn-assignment-using-t...)
Please allow us to use the API for this! Thanks!
Any update on this? It's been four years since this was posted and I similarly cannot get turnitin content enabled when creating an assignment using the Canvas API.
Does anyone else have any suggestions to this? We have switched our plagiarism tool and have hundreds of assignments to update to Turnitin, hopefully via API.
Hi @nschutz,
I'm 99% sure the information from the original post here refers to a legacy Turnitin API that Canvas used years ago. That was replaced by the Plagiarism Framework and LTI integrations. If you're using the plagiarism framework, I'm not sure you can do the config via Canvas API, as there are options set directly with the provider when configuring in the UI. I would also guess LTIs would be hard to do via API as well, but I will admit that I have never tried that.
I know this isn't really an exact answer, but I wanted to chime in as a I saw your reply to the relatively old post and wanted to make sure it was not ignored. If anyone else had additional info, I'm sure they'll contribute to the discussion here.
-Chris
@nschutz To share, when we transitioned to the 'new' plagiarism framework a few years back we opted to recreate the assignments vs. editing the existing assignments. We felt that would be the cleanest approach especially as Turnitin assignment dates go stale after a year or so. And at the time we did so manually as there was no API to help.
Fast forwarding to today.... If I had the issue of needing to update hundreds of assignments, I would consider using a Canvas Data 2 query and robot process automation (RPA) such as Power Automate. But the catch is we first need a clean list of the 'old' Turnitin (TII) assignments with the url, description HTML, settings, etc. into a spreadsheet. This is the input file used by the Power Automate flow to recreate the assignments.
As Canvas Data 1 didn't have TII data fields we opted to tag TII assignment names with a PLG1 or PLG2 (this latter being draft assignments). That ensured we knew which assignments use the TII tool. That said, my Canvas Data 2 support contact informed me back in DEC '23 that the TII fields within the CD2 assignments table are for the plugin version and not for the TII plagiarism framework. So I presume it is possible to use this to create the export list of course assignments that need to be updated to the new plagiarism framework.
I don't have an answer for how to update the assignments via the API, but recently created a report of which courses used the external lti Turnitin tool and how many used the Plagiarism Framework. I used CD2 to retrieve the information and then tried the API to see if it would return the information since I knew for sure which courses used either or both in assignments. The API did not return what was expected.
To retrieve courses using the Plagiarism Framework, I used a query similar to this:
SELECT c.course_id,
c.workflow_state,
c.account_id,
a.assignments_id,
a.originality_report_visibility
FROM courses c
INNER JOIN assignments a ON (c.course_id = a.context_id)
WHERE c.workflow_state = 'available' --published course
AND a.workflow_state = 'published' --published assignment
AND ((a.s_paper_check = TRUE) OR
(a.s_view_report = TRUE) OR
(a.internet_check = TRUE) OR
(a.journal_check = TRUE) OR
(a.exclude_biblio = TRUE) OR
(a.exclude_quoted = TRUE) OR
(a.submit_papers_to = TRUE))
I have a separate query that looks for the external LTI tool and joins the assignments table with the context_external_tools, and I have a regex for the URL.
While this won't help with the updating of the assignments via the API, you can pull the list of courses and assignments from CD2.
I used this API end point /api/v1/courses/:course_id/assignments/:aid?include[]=webhook_info to create a report of all assignments using a plagiarism tool.
The assignment object will be returned from the API call above, along with the following plagiarism tool info.
"webhook_info": {
"product_code": "turnitin-lti",
"vendor_code": "turnitin.com",
"resource_type_code": "cpf-tca-settings",
"tool_proxy_id": 139,
"tool_proxy_created_at": "2024-03-27T22:24:25Z",
"tool_proxy_updated_at": "2024-03-27T22:24:48Z",
"tool_proxy_name": "Turnitin LTI2",
"tool_proxy_context_type": "Account",
"tool_proxy_context_id": 1,
"subscription_id": "5f664586-81e8-4d47-a71b-f34c06f6c542"
},
If the webhook_info doesn't exist, it means no plagiarism tool is used.However, I am not familiar
with Power Automate. Sounds like a tool that can save a lot clicks.
Thank you @nschutz, this helped me start. I also found a similar post here: https://community.canvaslms.com/t5/Canvas-Developers-Group/Listing-Canvas-Plagiarism-Framework-Assig...
For the updating of an assignment via, we used an undocumented feature (as a one-off) to convert our assignments to TII (cpf) as discussed in here: https://community.canvaslms.com/t5/Canvas-Question-Forum/How-to-create-a-TurnItIn-assignment-using-t...
- the
Lti::MessageHandler_XYZ
'XYZ' - found it in the launch request (via developer tools)
To participate in the Instructure Community, you need to sign up or log in:
Sign In