因此,在JavaScript中,当AJAX发送对我发送到服务器的某些数据的响应时,我可以让http请求发起回调,这成功地成为了一个回调函数。我现在正在试验Ruby的OAuth2,我发现回调函数不一样;
我有一个web服务器和facebook应用程序设置,我有一个小的php脚本将当前的URL (例如,包括验证码)写到一个文件中,没有问题。facebook应用程序中的所有设置都已设置,如果我将以下内容放入浏览器的URL中:
http://graph.facebook.com/oauth/authorize?client_id=[my_client_id]&redirect_uri=http://localhost/oauth/callback/index.php它成功地重定向到该脚本,然后该脚本将授权码写入一个文件,然后我可以使用该文件来获取访问令牌。问题是我只能手动完成这个过程;在ruby中使用Net::HTTP.get(URI(address))命令似乎不能启动php脚本。
你有什么想法吗?
发布于 2014-07-28 01:56:33
我不知道你为什么要发布你的javascript ajax请求的历史记录,因为它对你的ruby脚本没有影响,顺便说一句,它甚至没有使用回调方法/函数。使用回调函数只是意味着调用某个函数,并将其作为参数传递给另一个函数。当我开始编程时,回调函数这个术语让我非常困惑,在我看来,这个术语应该从行话中删除。
至于ruby脚本,当您在浏览器中手动输入url时,您需要使用Firebug之类的工具来查看浏览器发送给服务器的请求头。如果你在你的ruby脚本中使用相同的头文件,那么它应该可以工作,例如:
req['header1'] = 'hello'
req['header2'] = '10'或者:
headers = {
'header1' => 'hello',
'header2' => '10',
...
}
req = Net::HTTP::Get.new(uri.request_uri, headers)
http = Net::HTTP.new(uri.host, uri.port)
resp = http.request(req)您的浏览器中可能设置了cookie,当浏览器将请求发送到服务器时,它会自动添加到请求标头中。您的浏览器可能会向请求中添加数千个头--其中许多头与您的问题无关。如果你有耐心,你可以试着找出哪个头文件导致你的ruby脚本的请求失败。
另一种选择是使用机械化gem,它将自动处理由ruby脚本发送的请求的cookie和重定向:
http://docs.seattlerb.org/mechanize/GUIDE_rdoc.html
(请阅读ruby部分;如果您使用的是Let's Fetch a Page1.9+,请不要使用require 'rubygems'行)。
https://stackoverflow.com/questions/24982009
复制相似问题