<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic SOLVED LTI Advantage Deep Linking - handleDeepLinkingLaunchInfo.error on LtiDeepLinkingResponse in Community Forum</title>
    <link>https://help.powerschool.com/t5/Community-Forum/SOLVED-LTI-Advantage-Deep-Linking-handleDeepLinkingLaunchInfo/m-p/544615#M26929</link>
    <description>&lt;P&gt;Hello community!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am a developer trying to integrate our tool with Schoology via LTI Advantage for deep linking. We already have a working LTI 1.3 core integration for launches, and our deep linking works on Canvas LMS.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;We can successfully launch into the tool with a LtiDeepLinkingRequest and select content items, but when trying to POST the JWT back to Schoology we get this error:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;{"error":"handleDeepLinkingLaunchInfo.error: One or more parameter values were invalid: Condition parameter type does not match schema type"}&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P data-unlink="true"&gt;Our JWT follows the required LtiDeepLinkingResponse schema outlined &lt;A href="https://www.imsglobal.org/spec/lti-dl/v2p0#deep-linking-response-message" target="_self"&gt;in the specifications:&lt;/A&gt;&lt;/P&gt;&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;PRE&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;  "iss"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"string"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;  "aud"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"string"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;  "exp"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"integer (unix timestamp)"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;  "iat"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"integer (unix timestamp)"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;  "nonce"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"string"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;  "https://purl.imsglobal.org/spec/lti/claim/version"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"string"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;  "https://purl.imsglobal.org/spec/lti/claim/message_type"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"string"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;  "https://purl.imsglobal.org/spec/lti/claim/deployment_id"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"string"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;  "https://purl.imsglobal.org/spec/lti-dl/claim/content_items"&lt;/SPAN&gt;&lt;SPAN&gt;: [&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;    {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;      "type"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"string"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;      "url"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"string"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;      "title"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"string"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;    }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;  ],&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;  "https://purl.imsglobal.org/spec/lti-dl/claim/data"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"string"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;  "https://purl.imsglobal.org/spec/lti-dl/claim/msg"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"string"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;P data-unlink="true"&gt;&lt;BR /&gt;Has anyone seen this error before or knows what I am missing?&lt;/P&gt;&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;P data-unlink="true"&gt;&lt;STRONG&gt;Solution&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;P data-unlink="true"&gt;The "iss" (client ID) was being sent as an integer, not a string. Although Schoology client IDs are digits only they &lt;STRONG&gt;must&lt;/STRONG&gt; be sent as strings. Other systems appear to be more flexible with this so we did not catch it before.&lt;/P&gt;</description>
    <pubDate>Wed, 30 Apr 2025 19:46:41 GMT</pubDate>
    <dc:creator>aljones</dc:creator>
    <dc:date>2025-04-30T19:46:41Z</dc:date>
    <item>
      <title>SOLVED LTI Advantage Deep Linking - handleDeepLinkingLaunchInfo.error on LtiDeepLinkingResponse</title>
      <link>https://help.powerschool.com/t5/Community-Forum/SOLVED-LTI-Advantage-Deep-Linking-handleDeepLinkingLaunchInfo/m-p/544615#M26929</link>
      <description>&lt;P&gt;Hello community!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am a developer trying to integrate our tool with Schoology via LTI Advantage for deep linking. We already have a working LTI 1.3 core integration for launches, and our deep linking works on Canvas LMS.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;We can successfully launch into the tool with a LtiDeepLinkingRequest and select content items, but when trying to POST the JWT back to Schoology we get this error:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;{"error":"handleDeepLinkingLaunchInfo.error: One or more parameter values were invalid: Condition parameter type does not match schema type"}&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P data-unlink="true"&gt;Our JWT follows the required LtiDeepLinkingResponse schema outlined &lt;A href="https://www.imsglobal.org/spec/lti-dl/v2p0#deep-linking-response-message" target="_self"&gt;in the specifications:&lt;/A&gt;&lt;/P&gt;&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;PRE&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;  "iss"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"string"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;  "aud"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"string"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;  "exp"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"integer (unix timestamp)"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;  "iat"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"integer (unix timestamp)"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;  "nonce"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"string"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;  "https://purl.imsglobal.org/spec/lti/claim/version"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"string"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;  "https://purl.imsglobal.org/spec/lti/claim/message_type"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"string"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;  "https://purl.imsglobal.org/spec/lti/claim/deployment_id"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"string"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;  "https://purl.imsglobal.org/spec/lti-dl/claim/content_items"&lt;/SPAN&gt;&lt;SPAN&gt;: [&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;    {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;      "type"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"string"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;      "url"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"string"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;      "title"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"string"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;    }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;  ],&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;  "https://purl.imsglobal.org/spec/lti-dl/claim/data"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"string"&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;  "https://purl.imsglobal.org/spec/lti-dl/claim/msg"&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;"string"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;P data-unlink="true"&gt;&lt;BR /&gt;Has anyone seen this error before or knows what I am missing?&lt;/P&gt;&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;P data-unlink="true"&gt;&lt;STRONG&gt;Solution&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;&lt;P data-unlink="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;P data-unlink="true"&gt;The "iss" (client ID) was being sent as an integer, not a string. Although Schoology client IDs are digits only they &lt;STRONG&gt;must&lt;/STRONG&gt; be sent as strings. Other systems appear to be more flexible with this so we did not catch it before.&lt;/P&gt;</description>
      <pubDate>Wed, 30 Apr 2025 19:46:41 GMT</pubDate>
      <guid>https://help.powerschool.com/t5/Community-Forum/SOLVED-LTI-Advantage-Deep-Linking-handleDeepLinkingLaunchInfo/m-p/544615#M26929</guid>
      <dc:creator>aljones</dc:creator>
      <dc:date>2025-04-30T19:46:41Z</dc:date>
    </item>
    <item>
      <title>Re: LTI Advantage Deep Linking - handleDeepLinkingLaunchInfo.error on LtiDeepLinkingResponse</title>
      <link>https://help.powerschool.com/t5/Community-Forum/SOLVED-LTI-Advantage-Deep-Linking-handleDeepLinkingLaunchInfo/m-p/545015#M26956</link>
      <description>&lt;P&gt;Hello, we recently completed our LTI 1.3 integration, including Deep Linking, and did not see that error.&amp;nbsp; Without seeing the specific data in one of your response packets, it's hard to tell if there is an issue (e.g. a simple typo in the message_type string) that might cause a LMS to reject the packet.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;We used the following PHP library, which you might want to review and see how they are forming the Deep Linking responses - perhaps that might spark an idea?&lt;/P&gt;&lt;P&gt;&lt;A href="https://github.com/packbackbooks/lti-1-3-php-library/tree/master" target="_blank"&gt;https://github.com/packbackbooks/lti-1-3-php-library/tree/master&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;With that library, the PHP code on our end to return a DeepLink is approximately:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;$dl = $launch-&amp;gt;getDeepLink();&lt;/P&gt;&lt;P&gt;$resource1 = Resource::new()&lt;BR /&gt;-&amp;gt;setUrl("&amp;lt;URL to this specific resource&amp;gt;")&lt;BR /&gt;-&amp;gt;setTitle("Lesson 1 Text");&lt;/P&gt;&lt;P&gt;$jwt = $dl-&amp;gt;getResponseJwt([$resource1]);&lt;BR /&gt;&lt;BR /&gt;$return_url = $dl-&amp;gt;returnUrl();&lt;BR /&gt;&lt;BR /&gt;// and then POST the $jwt string back to the $return_url&lt;/P&gt;</description>
      <pubDate>Mon, 28 Apr 2025 14:27:12 GMT</pubDate>
      <guid>https://help.powerschool.com/t5/Community-Forum/SOLVED-LTI-Advantage-Deep-Linking-handleDeepLinkingLaunchInfo/m-p/545015#M26956</guid>
      <dc:creator>chrisyust</dc:creator>
      <dc:date>2025-04-28T14:27:12Z</dc:date>
    </item>
  </channel>
</rss>

