instructure / ims-lti

A Ruby library to help implement IMS LTI tool consumers and providers
MIT License
199 stars 122 forks source link

OAuth::RequestProxy::UnknownRequestType (ActionDispatch::Request) #7

Closed acolchagoff closed 11 years ago

acolchagoff commented 11 years ago

I'm trying to connect desire2learn to our tool provider.

This is logged at the line:

if provider.valid_request?(request)

I copied this line from the example in the documentation. shouldn't it just return false if the request is malformed or otherwise messed up?

Here's the request parameters from our desire2learn test portal:

Parameters: { "launch_presentation_locale"=>"EN-US__", "tool_consumer_info_version"=>"10.1.0 SP5", "tool_consumer_info_product_family_code"=>"desire2learn", "tool_consumer_instance_guid"=>"", "tool_consumer_instance_name"=>"", "tool_consumer_instance_description"=>"", "tool_consumer_instance_contact_email"=>"", "context_id"=>"6670", "context_title"=>"Sandbox Course 1", "context_label"=>"Sandbox _101", "context_type"=>"CourseOffering", "ext_tc_profile_url"=>"https://notreal.desire2learndemo.com/d2l/api/ext/1.0/lti/tcservices", "ext_d2l_token_id"=>"2602", "ext_d2l_link_id"=>"8", "ext_d2l_token_digest"=>"3n+aoHDWP3bh9Vq2lbB+ERC07vw=", "resource_link_id"=>"74891df6-8638-1e24-994b-6b57ce61886d_439707169", "resource_link_title"=>"TestProvider", "resource_link_description"=>"TestProvider", "lis_result_sourcedid"=>"755de886-03ca-4e78-988a-629a9ae70382", "lis_outcome_service_url"=>"https://notreal.desire2learndemo.com/d2l/le/lti/Outcome", "lti_version"=>"LTI-1p0", "lti_message_type"=>"basic-lti-launch-request", "oauth_version"=>"1.0", "oauth_nonce"=>"141431938", "oauth_timestamp"=>"1371067056", "oauth_signature_method"=>"HMAC-SHA1", "oauth_consumer_key"=>"TEST", "oauth_callback"=>"about:blank", "oauth_signature"=>"3PytuKS5veuuydipM2MWj2lis+M=", "basiclti_submit"=>"Launch Endpoint with BasicLTI Data", "id"=>"1"}

acolchagoff commented 11 years ago

fixed... I needed to add this to my environment

require 'oauth/request_proxy/rack_request'

You also need to explicitly enable OAuth 1 support in the environment.rb or an initializer:

OAUTH_10_SUPPORT = true

bracken commented 11 years ago

I'm glad you figured it out. :)

sebabelmar commented 9 years ago

Forgot about require 'oauth/request_proxy/rack_request'

Thanks for sharing even when you figured your self!