ruby - 从 Slack API 获得响应的正确方法
问题描述
我想从控制台移动这段代码:
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 method
#Hash:0x00007f9d85093100> 的字节大小(NoMethodError)
我哪里错了?我应该HTTParty
改用吗?
解决方案
传递给的第二个参数应该是一个字符串,在此处Net::HTTP.post
阅读有关方法签名的更多信息。
您需要将params
哈希转换为查询字符串格式,如下所示:
token=TOKEN_NO&email=USER@EXAMPLE.COM
推荐阅读
- excel - 将饼图段的颜色更新为单元格填充颜色
- r - 在给定事件后具有第一次观察的子集行
- c++ - 此代码的浮点错误有人可以帮助我吗
- javascript - Amplify w/Cognito:如何获取当前用户的电子邮件?
- kubernetes - 无法访问 localhost 上的 kubernetes 服务
- r - 将 R 中的多个 .csv 与 R 中的数值和非数值相结合
- php - 由于 Codeigniter 控制器导致的重复内容问题
- kotlin - 如何使用 kotlinx 序列化 json 的动态键
- java - 如何跳过 API 网关重定向 Spring 安全性
- javascript - javascript 业余问题 offset().top jquery