Войдите в использование JSON в API Reddit API
-
14-11-2019 - |
Вопрос
Я пытался построить немного бота, который будет использовать API Reddit. Я могу сломаться и прочитать всю информацию, которую я получаю без проблем, но я еще ничего не смог отправить.
Что я хочу сделать: Отправить подготовленную json string to http://www.reddit.com/api/login и получите какой-то ответ, если мне преуспеют или не удалось.
Если вам нужна дополнительная информация о API reddit: https://github.com/reddit/reddit / wiki / API
.
require 'rubygems'
require 'httparty'
require 'json'
require 'pp'
class Login
include HTTParty
base_uri 'reddit.com/'
default_params :output => 'json'
format :json
def post(message)
options = {:body => JSON.generate(message)}
self.class.post('api/login', options)
end
end
login = Login.new()
pp login.post({'username' => 'USERNAME', 'passwd' => 'PW'})
Этот код дает мне следующую ошибку:
.
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/net/http.rb:1060:in `request': undefined method `closed?' for nil:NilClass (NoMethodError)
Несмотря на то, что очень похожий кусок кода будет опубликовать в Twitter. Кроме того, я не уверен, что мой код на самом деле получает какой-то ответ с сайта или нет.
Мне не важно, если я использую httparty или нет, поэтому, если вы знаете гораздо лучший способ сделать это, не стесняйтесь делиться!
Спасибо заранее!
Решение
You can rewrite it like this
class Login
include HTTParty
base_uri 'http://www.reddit.com'
def post(username, password)
options = {:body => {:user => username, :passwd => password, :api_type => 'json'}}
self.class.post("/api/login/#{username}", options)
end
end
Login.new.post('user', 'pass')
Just remember that API url for a login must be: http://www.reddit.com/api/login/USERNAME
(with www) and you should pass api_type
param in request.