문제

Reddit의 API를 사용하는 작은 봇을 구축하려고 노력해 왔습니다. 나는 문제없이받는 모든 정보를 모두 읽고 읽을 수 있지만 아직 아무것도 보낼 수 없었습니다.

내가하고 싶은 일은 다음과 같습니다 : 준비된 JSON 문자열을 http://www.reddit.com/api/login 내가 성공했거나 실패한 경우 일종의 응답.

Reddit의 API에 대한 추가 정보가 필요하면 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)
.

매우 유사한 코드 덩어리가 트위터에 게시 될 것입니다. 또한 코드가 실제로 사이트에서 몇 가지 응답을 얻는지 확실하지 않습니다.

httthoarty를 사용하는지 여부를 알고 싶습니다. 그래서 훨씬 더 좋은 방법을 알고 있으면 자유롭게 공유하십시오!

미리 감사드립니다!

도움이 되었습니까?

해결책

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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top