Etsy oauth 和获取信息

如何解决Etsy oauth 和获取信息

我正在尝试使用 etsy API 并使用 oauth gem 进行验证。通过在第一个请求 url 中执行此操作,我成功获得了一个成功的令牌:

    scopes = ["email_r","feedback_r","listings_r","transactions_r"]
    oauth_consumer = OAuth::Consumer.new(Rails.application.secrets.etsy_api_key,Rails.application.secrets.etsy_api_secret,site: "https://openapi.etsy.com/v2"
    )
    oauth_consumer.options[:request_token_path] = "/oauth/request_token?scope=#{scopes.join('%20')}"
    request_token = oauth_consumer.get_request_token(oauth_callback: new_etsy_authentication_url)
    redirect_to request_token.params[:login_url]

然后用户通过 etsy 验证页面和回调 url 我有以下内容:

current_user.update(etsy_auth: {
        oauth_token: params["oauth_token"],oauth_verifier: params["oauth_verifier"],oauth_created_at: Time.current.to_i
      })

我成功保存 etsy oauth_tokenoauth_verifier 的地方。

问题从那之后开始。我已经尝试了很多事情来向用户提出请求,但我总是得到 oauth_token=rejected。这是我迄今为止所做的示例:

oauth_consumer = OAuth::Consumer.new(Rails.application.secrets.etsy_api_key,site: "https://openapi.etsy.com/v2")
access_token = OAuth::AccessToken.new(oauth_consumer,oauth_token: current_user.etsy_auth["oauth_token"],oauth_secret: current_user.etsy_auth["oauth_verifier"])
access_token.request(:get,"/users/__SELF__")

在此之前我是否应该再提出一个请求,以获得另一个临时 oauth_token 和 oauth_secret?

我试过这样做: request_token = oauth_consumer.get_request_token 并且我得到了一个临时的 oauth_tokenoauth_token_secret 以及 oauth_consumer_key(我不确定应该如何使用)。我得到了临时令牌并尝试了许多组合但没有取得太大成功,我总是收到 oauth_token=rejected 。我还没有弄清楚我是否应该以及在哪里使用 oauth_consumer_key,如果 oauth_verifier 实际上是 oauth_secret。

我错过了什么?任何帮助表示赞赏。

解决方法

我终于找到了需要做的事情。在向 Etsy 发出初始请求后,我必须存储 oauth_tokenoauth_secret。然后 Etsy 也返回 oauth_verifier

为了在此之后获取和执行每个请求,您需要将所有三个请求都发送到工作中。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?