Magento oauth和REST api麻烦

我正在尝试将我的ruby在rails应用程序上集成到magento,我甚至做出了初始请求,获得授权,我相信我已经获得了最终令牌,但我无法确定。 以下是我的回复:

(这里有很多东西,所以在我取出导入位的时候跳过去)

..... "credentials"=> {"token"=>"r8apb2rcgci9ry5hugcuiqlnwdi0evc1", "secret"=>"8pnyogb4048toujt5rjoq26tqh50vkv5"}, "extra"=> {"access_token"=> #<OAuth::AccessToken:0x007fdd59893468 @consumer= #<OAuth::Consumer:0x007fdd5995f928 @http=#, @http_method=:post, @key="ttuj6ok0ioziv7bcfwi8wprzqe6o4x1e", @options= {:signature_method=>"HMAC-SHA1", :request_token_path=>"/oauth/initiate", :authorize_path=>"/admin/oauth_authorize", :access_token_path=>"/oauth/token", :proxy=>nil, :scheme=>:header, :http_method=>:post, :oauth_version=>"1.0", :site=>"https://mymagentocart.dev"}, @secret="b0maut2ftkg2wb3nm24t263720n7kxqa">, @params= {:oauth_token=>"r8apb2rcgci9ry5hugcuiqlnwdi0evc1", "oauth_token"=>"r8apb2rcgci9ry5hugcuiqlnwdi0evc1", :oauth_token_secret=>"8pnyogb4048toujt5rjoq26tqh50vkv5", "oauth_token_secret"=>"8pnyogb4048toujt5rjoq26tqh50vkv5"}, @secret="8pnyogb4048toujt5rjoq26tqh50vkv5", @token="r8apb2rcgci9ry5hugcuiqlnwdi0evc1">}, "oauth_token"=>"jj2dbrea7dimxwc0twibyoikxjazvs6y", "oauth_verifier"=>"83idqmtmb76fe5axad1rf7lhfa3wqxki" ..... 

我在访问令牌中看到了我的密钥和秘密:

 @key="ttuj6ok0ioziv7bcfwi8wprzqe6o4x1e" @secret="b0maut2ftkg2wb3nm24t263720n7kxqa” 

当我在管理员中创建REST使用者时,这就是magento给我的东西。

然后有一堆重复的令牌和秘密,但它们都是一样的,属于“凭证”标签:

 “token"=>"r8apb2rcgci9ry5hugcuiqlnwdi0evc1" “secret"=>"8pnyogb4048toujt5rjoq26tqh50vkv5” 

最后,有oauth_token和oauth_verifier:

 “oauth_token"=>"jj2dbrea7dimxwc0twibyoikxjazvs6y" “oauth_verifier"=>"83idqmtmb76fe5axad1rf7lhfa3wqxki” 

所以这是我的问题……

我需要通过以下哪些请求直接进行身份validation而无需重新生成令牌?

在我的应用程序中,每次我发出请求时,它都会一直将我发送回magento的用户确认屏幕以进行授权。

另外,我如何请求获取我的magento用户ID,名称等…所以我可以使用此信息在rails app中生成用户?

谢谢!

您有访问令牌对象,因此您应该能够执行以下操作:

 auth_hash["extra"]["access_token"].get("/api/rest/products") 

如果要创建新的访问令牌对象,可以使用我从示例中提取的键和标记执行以下操作:

 @consumer=OAuth::Consumer.new("ttuj6ok0ioziv7bcfwi8wprzqe6o4x1e", "b0maut2ftkg2wb3nm24t263720n7kxqa", {:site => "https://mymagentocart.dev"}) @access_token = OAuth::AccessToken.new(@consumer, "r8apb2rcgci9ry5hugcuiqlnwdi0evc1", "8pnyogb4048toujt5rjoq26tqh50vkv5") @access_token.get("/api/rest/products") 

请参阅此页面上的“使用长期访问令牌”: http : //code.google.com/p/oauth-plugin/wiki/AccessToken