Connexion à l'aide de JSON pour redditer API
-
14-11-2019 - |
Question
J'essaie de construire un petit bot qui utilisera l'API de Reddit. Je peux décomposer et lire toutes les informations que je reçois sans problème, mais je n'ai pas encore été en mesure d'envoyer quelque chose.
Si vous avez besoin de plus d'informations sur l'API de 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'})
Ce code me donne l'erreur suivante:
/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)
Même si un morceau de code très similaire posterait sur Twitter. En outre, je ne sais pas si mon code reçoit en réalité une sorte de réponse du site ou non.
pour moi, peu importe si j'utilise httparty ou non, donc si vous connaissez une bien meilleure façon de le faire, n'hésitez pas à partager!
Merci d'avance!
La solution
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.