【问题标题】:Correct way to get response from Slack API从 Slack API 获得响应的正确方法
【发布时间】:2020-01-24 01:57:16
【问题描述】:

我想从控制台移动这段代码:

curl --data "token=TOKEN_NO&email=USER@EXAMPLE.COM" https://slack.com/api/users.lookupByEmail

到类方法并从 Slack(用户详细信息)获得响应,就像从控制台一样。我试图做这样的事情,但我没有看到任何结果:

require 'net/http'

module Slack
  class GetUserID
    SLACK_API_ENDPOINT = 'https://slack.com/api/users.lookupByEmail'

    def call
      escaped_address = URI.decode_www_form_component(SLACK_API_ENDPOINT)
      uri = URI.parse(escaped_address)
      puts Net::HTTP.post(uri, params)
    end

    private

    def params
      {
        token: 'TOKEN_NO',
        email: 'USER@EXAMPLE.COM'
      }
    end
  end
end

现在我有一个错误:

send_request_with_body': undefined methodbytesize' for #Hash:0x00007f9d85093100> (NoMethodError)

我哪里错了?我应该改用HTTParty 吗?

【问题讨论】:

  • 您需要显示堆栈跟踪,以便我们理解这一点。
  • 我认为你需要添加.to_json,所以它看起来像:puts Net::HTTP.post(uri, params.to_json)

标签: ruby slack-api


【解决方案1】:

传递给Net::HTTP.post 的第二个参数应该是一个字符串,请阅读有关方法签名here 的更多信息。

您需要将params 哈希转换为如下查询字符串格式:

token=TOKEN_NO&email=USER@EXAMPLE.COM

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    • 2020-08-25
    • 2022-11-23
    • 2020-05-08
    相关资源
    最近更新 更多