4

私はrubyonrailsアプリをmagentoに統合しようとしていますが、最初のリクエストを行い、承認を得て、最終的なトークンを取得していると思いますが、確信が持てません。これが私の応答にあるものです:

(ここにはたくさんのものがあるので、インポートビットを取り出すところをスキップしてください)

 .....
 "credentials"=>
  {"token"=>"r8apb2rcgci9ry5hugcuiqlnwdi0evc1",
   "secret"=>"8pnyogb4048toujt5rjoq26tqh50vkv5"},
 "extra"=>
  {"access_token"=>
    #<OAuth::AccessToken:0x007fdd59893468
     @consumer=
      #<OAuth::Consumer:0x007fdd5995f928
       @http=#<Net::HTTP mymagentocart.dev:443 open=false>,
       @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”

これが私の問題です…</p>

トークンを再生成せずにすぐに認証するために、将来のリクエストで渡す必要があるのはどれですか?

現在の私のアプリでは、リクエストを行うたびに、Magentoのユーザー確認画面に戻って承認を求め続けます。

また、magentoのユーザーIDや名前などを取得するようにリクエストするにはどうすればよいですか?この情報を使用してRailsアプリでユーザーを生成できますか?

ありがとうございました!

4

1 に答える 1

0

アクセストークンオブジェクトがあるので、次のようなことができるはずです。

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

于 2012-11-27T20:15:20.997 に答える