首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用get_token方法的Newsletter2go ruby API客户端授权

使用get_token方法的Newsletter2go ruby API客户端授权
EN

Stack Overflow用户
提问于 2019-10-04 22:07:53
回答 1查看 64关注 0票数 0

日安!你能给我一个使用ruby newsletetr2go应用编程接口客户端的认证请求的例子吗?我想不出来。我可以使用直接请求连接API,比如凭据中的RestClient.post "#{link}/oauth/v2/token", credentials, default_header。我使用我的usernamepasswordgrant_type,转换为json格式。

在默认报头中,我使用了content_type: 'application/json'authorization: "Basic #{Base64.strict_encode64(ENV['NEWSLETTER2GO_AUTH_KEY'])}",它工作得很好。但是当我尝试使用newsletter2go get_token方法时,我收到的所有信息都是“请求错误”错误。

我使用初始化器来配置SwaggerClient,如下所示:

代码语言:javascript
复制
SwaggerClient.configure do |config|
  # Configure OAuth2 access token for authorization: OAuth
  config.password   = ENV['NEWSLETTER2GO_PASSWORD']
  config.username   = ENV['NEWSLETTER2GO_USERNAME']
  config.api_key    = ENV['NEWSLETTER2GO_AUTH_KEY']
end

之后,我使用newsletter2go api方法调用。

代码语言:javascript
复制
SwaggerClient::AuthorizationApi.new.get_token("https://nl2go.com/jwt")

看起来一切都是正确的,但是错误"BAD REQUEST"总是发生。

我按照说明在github中安装了带有ruby扩展的swagger_client,现在可以从我的rails环境中使用newsletter2go方法了。如果我手动获取access_token并将其添加到我的初始化器中,然后执行一些像SwaggerClient::ListApi.new.get_lists这样的请求,它会给我一个带有status 200list_ids的正确响应

但是SwaggerClient::AuthorizationApi.new.get_token("https://nl2go.com/jwt")不能工作,这就是问题所在。任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2019-10-07 22:32:29

我找出了Newsletter2Go API ruby客户端不能获取api_key值的原因。由于某些原因,它被硬编码为设置基本的身份验证令牌,该令牌来自用户名和密码。下面是来自

module SwaggerClient class Configuration

代码语言:javascript
复制
# Gets Basic Auth token string
def basic_auth_token
  'Basic ' + ["#{username}:#{password}"].pack('m').delete("\r\n")
end

# Returns Auth Settings hash for api client.
def auth_settings
  {
    'OAuth' =>
      {
        type: 'oauth2',
        in: 'header',
        key: 'Authorization',
        value: "Bearer #{access_token}"
      },
    'Basic' =>
      {
        type: 'basic',
        in: 'header',
        key: 'Authorization',
        value: basic_auth_token
      },
  }
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58238028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档