gpt4 book ai didi

ruby - (REDDIT) 尝试通过 API 订阅 subreddits 时出错

转载 作者:数据小太阳 更新时间:2023-10-29 08:03:59 24 4
gpt4 key购买 nike

我知道Snoo似乎没有维护,但我想使用 ruby​​ 框架,因为我正在努力提高我的 Ruby 技能。

我正在尝试添加一些功能,从订阅和取消订阅 subreddits 开始。 Link to API doc.

我的第一次尝试是使用返回 404 错误的内置 post 方法

def subscribe(subreddit)
logged_in?
post('/api/subscribe.json',body:{uh: @modhash, action:'sub', sr: subreddit, api_type: 'json'})
end

由于内置的​​ post 方法给我一个 404,我决定尝试 HTTParty post 方法:

def subscribe(subreddit)
logged_in?
HTTParty.post('http://www.reddit.com/api/subscribe.json',body:{uh: @modhash, action:'sub', sr: subreddit, api_type: 'json'})
end

返回这个:

pry(main)> reddit.subscribe('/r/nba')
=> {"json"=>{"errors"=>[["USER_REQUIRED", "please login to do that", nil]]}}

有谁知道我是否需要在正文中传递更多信息,或者我是否只是发送格式错误的请求?谢谢!

此外,在运行“reddit.subscribe”之前,我已验证我使用 cookie、modhash 登录,可以访问我的帐户信息等。

最佳答案

找到的解决方案:

def subscribe(subreddit)
#query the subreddit for it's 'about' info and get json back
subreddit_json = self.subreddit_info(subreddit)

#build the coded unique identifier for the targeted subreddit
subreddit_id = subreddit_json['kind'] + "_" + subreddit_json['data']['id']

#send post request to server
server_response = self.class.post('/api/subscribe.json',
body:{uh:@modhash, action:'sub', sr: subreddit_id, api_type:'json'})
end

Reddit API 不接受 subreddit 名称作为使用“sr”传递的值(例如 sr:'/r/funny')。它需要 subreddit“类型”(subreddits 始终为“t5”)和唯一的论坛 ID。传递的参数类似于:sr: "t5_2qo4s"。如果您转到目标 subreddit 并添加 about.json,例如 www.reddit.com/r/funny/about.json,则此信息可用

关于ruby - (REDDIT) 尝试通过 API 订阅 subreddits 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26243620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com