내가 임무를 봤는데 예상대로 응답하지하지만 난 (나에게) 이해가되지 않습니다 응답 오류가 받고 있어요 :API는 루비에 <a href="https://github.com/canyousayyes/pinterest-save-repin/blob/master/index.js" rel="nofollow noreferrer">this javascript file</a> 재건과
{"api_error_code"=>1, "message"=>"Parameter 'username_or_email' is required.", "code"=>"API_ERROR", "target"=>"<webapp.resources.user_session_resource.UserSessionResource object at 0xb8e2a90>", "http_status"=>400}
그것은하지 않습니다 나는 정말로 내가 요청을하기 전에 몸에 박았을 할 위치를 여기에서 볼 수있는 것처럼 username_or_email
매개 변수를 공급하고 becuase 이해 : 나는 페이로드를 설정하는 방법 또한 보이지 않는다
{"source_url":"/login/","data":"{\"options\":{\"username_or_email\":\"[email protected]\",\"password\":\"testpassword\"},\"context\":{}}","module_path":"App()>LoginPage()>Login()>Button(class_name=primary, text=Log In, type=submit, size=large)"}
역시 중요합니다 @curl.post_body = payload
또는 @curl.http_post(payload)
또는을 수행하여그냥 같은 오류로 응답합니다. 덧붙여 @curl
은 Curl::Easy
의 인스턴스입니다.
원래대로 json 데이터 요청과 일치했습니다. 어떻게 진행되고 있습니까?
여기까지 요청입니다 :
require_relative "curb_dsl"
require 'json'
module Pin
class Client
Login_URL = "https://www.pinterest.com/resource/UserSessionResource/create/"
Repin_URL = "https://www.pinterest.com/resource/RepinResource/create/"
include Curb_DSL
class << self
def login(username_or_email, password)
self.new do
set_uri Login_URL
header 'Accept', 'application/json, text/javascript, */*; q=0.01'
header 'Accept-Language', 'en-US,en;q=0.5'
header 'Cache-Control', 'no-cache'
header 'DNT','1'
header 'Host', 'www.pinterest.com'
header 'Origin', 'https://www.pinterest.com'
header 'Referer', 'https://www.pinterest.com/'
header 'User-Agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
header 'X-APP-VERSION', '18733c1'
header 'X-CSRFToken', 'K4C0QUu35Eoq1xjajbMluw7hOKibpQSW'
header 'X-NEW-APP', '1'
header 'X-Pinterest-AppState', 'active'
header 'X-Requested-With', 'XMLHttpRequest'
set_cookies({ ":_auth" => '0',csrftoken: 'K4C0QUu35Eoq1xjajbMluw7hOKibpQSW'})
set_payload({
source_url: "/login/",
data: {
options: {
username_or_email: username_or_email,
password: password
},
context: {}
}.to_json,
module_path: "App()>LoginPage()>Login()>Button(class_name=primary, text=Log In, type=submit, size=large)"
})
set_type_converter -> (payload) {payload.to_json}
set_error_handler -> {
JSON.parse(body)['resource_response']['error'].to_s
}
puts post_body
post
@csrftoken = resp_cookies['csrftoken']
end
end
end
end
end
컨트롤러에 중단 점을 넣고'params '의 값을 검사하십시오. 최상위 키가 있는지 확인하십시오. –
음 무엇? 무슨 컨트롤러 요? – Thermatix