Re: Act as user via API (2024)

Skip to main content

Learn about Community

Sign In

You're signed out

Sign in to ask questions, follow content, and engage with the Community

Sign In

'; hoverCardInner.innerHTML = loadingHTML.repeat(4); hoverCardContainer.classList.add('profile-hover-card-show'); // Extract information from the image element const titleField = avatar.getAttribute('title'); const userInfoUrl = `https://${mainURL}/api/2.0/search?q=SELECT first_name, last_name, login, view_href, rank, topics, solutions_authored, id, email FROM users WHERE login = '${titleField}'`; const userPostsUrl = `https://${mainURL}/api/2.0/search?q=SELECT count(*) FROM messages WHERE author.login = '${titleField}'`; const userSolutionsUrl = `https://${mainURL}/api/2.0/search?q=SELECT count(*) FROM messages WHERE author.login = '${titleField}' AND is_solution = true`; const userBadgesUrl = `https://${mainURL}/api/2.0/search?q=SELECT user_badges from users where login = '${titleField}'`; // Fetch user information async function createProfileData() { const userInfo = await fetch(userInfoUrl); const userPosts = await fetch(userPostsUrl); const userSolutions = await fetch(userSolutionsUrl); const userBadges = await fetch(userBadgesUrl); const userInfoData = await userInfo.json(); const userPostsData = await userPosts.json(); const userSolutionsData = await userSolutions.json(); const userBadgesData = await userBadges.json(); const userBadgesArray = userBadgesData.data.items[0].user_badges.items; const earnedBadgesArray = userBadgesArray.filter(badge => badge.earned_date); earnedBadgesArray.sort((a, b) => new Date(b.earned_date) - new Date(a.earned_date)); const userRankName = userInfoData.data.items[0].rank.name; const userID = userInfoData.data.items[0].id; // const userKudosUrl = `https://${mainURL}/restapi/vc/users/id/${userID}/metrics/name/net_kudos_events_received?restapi.response_format=json`; const userKudos = await fetch(userKudosUrl); const userKudosData = await userKudos.json(); let fullName = userInfoData.data.items[0].login; if (userInfoData.data.items[0].first_name !== undefined && userInfoData.data.items[0].last_name !== undefined) { let firstName = userInfoData.data.items[0].first_name; let lastName = userInfoData.data.items[0].last_name; fullName = firstName + " " + lastName; } else { fullName = userInfoData.data.items[0].login; } let userRankIcon = ""; if (userInfoData.data.items[0].rank.icon_left !== undefined) { userRankIcon = userInfoData.data.items[0].rank.icon_left; } else { userRankIcon = ""; } let userEmail = ""; // <#if user_has_role> if (userInfoData.data.items[0].email !== undefined) { userEmail = userInfoData.data.items[0].email; } else { userEmail = ""; } // <#else> userEmail = ""; // #if> const userViewHref = userInfoData.data.items[0].view_href; const userPostsCount = userPostsData.data.count; const userSolutionsCount = userSolutionsData.data.count; const userKudosCount = userKudosData.response.value.$; const userBadgesCount = earnedBadgesArray.length; let badgesHTML = ""; if (earnedBadgesArray.length === 0) { badgesHTML = `

This user hasn't earned any badges yet.

`; } else { for (let i = 0; i < earnedBadgesArray.length; i++) { const badgeName = earnedBadgesArray[i].badge.title; const badgeIcon = earnedBadgesArray[i].badge.icon_url; const badgeHTML = `

Re: Act as user via API (12)

`; badgesHTML += badgeHTML; if (i >= 4) { break; } }; } const hoverCardHTML = `

${fullName}

Re: Act as user via API (13)${userRankName}

${userEmail}

${badgesHTML}

${userPostsCount} posts ${userKudosCount} likes ${userSolutionsCount} solutions

`; // // Display the hover card return hoverCardHTML; } if (hoverCardInner.innerHTML.includes('loading-box')) { createProfileData().then((hoverCardHTML) => { hoverCardInner.innerHTML = hoverCardHTML; }); } } }); //Hide the hover card on mouseout avatar.addEventListener('mouseout', () => { const hoverCardContainer = avatar.nextElementSibling; hoverCardContainer.classList.remove('profile-hover-card-show'); }); hoverCardInner.addEventListener('mouseout', () => { const hoverCardContainer = avatar.nextElementSibling; hoverCardContainer.classList.remove('profile-hover-card-show'); }); hoverCardInner.addEventListener('mouseover', () => { const hoverCardContainer = avatar.nextElementSibling; hoverCardContainer.classList.add('profile-hover-card-show'); }); }); });

Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

Showonly | Search instead for

Did you mean:

  • Community
  • Canvas
  • Canvas LMS
  • Canvas Question Forum
  • Re: Act as user via API

Options

  • Subscribe to RSS Feed
  • Mark Topic as New
  • Mark Topic as Read
  • Float this Topic for Current User
  • Bookmark
  • Subscribe
  • Mute
  • Printer Friendly Page

`; const toolTip = document.createElement('div'); toolTip.classList.add('like-button-tooltip'); toolTip.innerHTML = toolTipCode; likeButton.appendChild(toolTip); } document.addEventListener('DOMContentLoaded', function () { const likeButton = document.querySelector('.lia-button-image-kudos'); const likeButtonLink = document.querySelector('.kudos-link'); let likeDismissCookie = localStorage.getItem("inst_comm_like_dismiss"); if (!likeDismissCookie) { localStorage.setItem("inst_comm_like_dismiss", "-1"); loginDate = -1; } if (likeDismissCookie !== "-1") { // toolTip.style.display = 'none'; const storedTime = new Date(parseInt(loginDate)); const currentTime = new Date(); if (storedTime.getTime() < currentTime.getTime()) { localStorage.setItem("inst_comm_like_dismiss", "-1"); } } else { createToolTip(likeButton, likeButtonLink); const toolTip = document.querySelector('.like-button-tooltip'); const toolTipClose = document.querySelector('.like-button-tooltip-close'); const observer = new IntersectionObserver(entries => { entries.forEach(entry => { if (entry.isIntersecting) { toolTip.style.display = 'block'; setTimeout(() => { toolTip.style.opacity = '1'; }, 2000); // toolTip.style.animationName = 'toolTipFlash'; // Stop observing once elementOne is visible observer.unobserve(likeButton); } }); }); // Start observing elementTwo observer.observe(likeButton); likeButtonLink.addEventListener('click', () => { toolTip.style.display = 'none'; }); if (toolTipClose) { toolTipClose.addEventListener("click", function () { const now = new Date(); const fourteenDays = new Date(now.getTime() + 14 * 24 * 60 * 60 * 1000); // Adding 24 hours in milliseconds const epochTime = fourteenDays.getTime(); // Getting the epoch time in milliseconds localStorage.setItem("inst_comm_like_dismiss", epochTime); toolTip.style.display = 'none'; }); } setTimeout(() => { toolTip.style.opacity = '0'; setTimeout(() => { toolTip.style.display = 'none'; }, 500); // Fade out duration (0.5 seconds) + delay (0.5 seconds) = 1 second }, 15000); // Hide after 10 seconds (including 2-second fade-in delay) } });

Act as user via API

Jump to solution

Re: Act as user via API (14)

AlexanderEvans

Community Explorer

  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Report Inappropriate Content

I'm working on a "control center" app for common work tasks. I need a function that takes in a user, then opens a web browser with the signed-in admin acting as that user. I'm scanning all through the docs and can't find any way to activate the "act as". Is there any way to do this via API? If not, any other ideas? Pretty new to Python so any module recommendations would be pretty neat too. 🙂

Solved!Go to Solution.

I also have this question

0Likes

1 Solution

Jump to solution

Re: Act as user via API (15)

Re: Act as user via API (16)jerry_nguyen

Community Coach

  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Report Inappropriate Content

yesterday

@AlexanderEvans

You canmasquerade (or act as) when calling an API by adding this parameter "as_user_id" to your request. You can read more about Masquerading through API here:📔https://canvas.instructure.com/doc/api/file.masquerading.html

View solution in original post

This reply answered my question

2Likes

  • All forum topics
  • Previous Topic
  • Next Topic

3 Replies

Jump to solution

Re: Act as user via API (17)

Re: Act as user via API (18)jerry_nguyen

Community Coach

  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Report Inappropriate Content

yesterday

@AlexanderEvans

You canmasquerade (or act as) when calling an API by adding this parameter "as_user_id" to your request. You can read more about Masquerading through API here:📔https://canvas.instructure.com/doc/api/file.masquerading.html

This reply answered my question

2Likes

Jump to solution

Re: Act as user via API (19)

AlexanderEvans

Community Explorer

In response to jerry_nguyen

Author

  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Report Inappropriate Content

3 hours ago

Appreciate you!

0Likes

Jump to solution

Re: Act as user via API (20)

James

Community Champion

  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Report Inappropriate Content

yesterday

@AlexanderEvans

You won't be able to log into Canvas as the other user directly by launching a browser. The quickest way to get this is to take the admin to the masquerade URL for the user. That's the last screen you see before clicking "Proceed" to start the masquerading.

The URL has the form <canvas instance>/users/:user_id/masquerade

You can replace :user_id with the Canvas user ID or with sis_user_id:1234 (assuming the SIS user ID is 1234).

If you need to act as someone via the API (without actually being in Canvas), see masqueradingin the API documentation.

2Likes

Re: Act as user via API (21)

Unanswered Topics

  • How can I fix QuickBooks payroll that won't update...

  • What are the steps to resolve QuickBooks Error 151...

  • Test Student submission still there after Resettin...

  • Markbook

  • The new changes to canvas

View All

Latest Topics

  • How can I fix QuickBooks payroll that won't update...

  • What are the steps to resolve QuickBooks Error 151...

  • Test Student submission still there after Resettin...

  • Markbook

  • The new changes to canvas

View All

View our top guides and resources:

Find My Canvas URL Help Logging into Canvas Generate a Pairing Code Canvas Browser and Computer Requirements Change Canvas Notification Settings Submit a Peer Review Assignment

To participate in the Instructurer Community, you need to sign up or log in:

Sign In

Re: Act as user via API (2024)

References

Top Articles
Latest Posts
Article information

Author: Terence Hammes MD

Last Updated:

Views: 6022

Rating: 4.9 / 5 (69 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Terence Hammes MD

Birthday: 1992-04-11

Address: Suite 408 9446 Mercy Mews, West Roxie, CT 04904

Phone: +50312511349175

Job: Product Consulting Liaison

Hobby: Jogging, Motor sports, Nordic skating, Jigsaw puzzles, Bird watching, Nordic skating, Sculpting

Introduction: My name is Terence Hammes MD, I am a inexpensive, energetic, jolly, faithful, cheerful, proud, rich person who loves writing and wants to share my knowledge and understanding with you.