使用Restful Ruby获取Instagram访问令牌



我正在尝试使用Instagram API创建一个rails后台工作程序来查询标签。我不需要登录任何其他用户,但我自己也不想使用任何浏览器,只需要RESTful调用。

我正在尝试使用gem"rest客户端"在Ruby脚本中自动获取访问令牌(https://github.com/rest-client/rest-client)

我可以在浏览器中成功导航到以下url,并从响应url 中获取访问令牌

我使用了以下两个URL:https://www.instagram.com/oauth/authorize/?client_id=xxx&redirect_uri=xxx&response_type=令牌

但是当我使用RESTful gemresponse = RestClient.get(url)response.headers['location']为零

我也尝试过使用Instagram API URL,但没有运气:https://api.instagram.com/oauth/authorize/?client_id=xxx&redirect_uri=xxx&response_type=代码

有人知道如何在Ruby中完全以编程方式获取访问令牌吗?

我想我错过了登录用户(将是我)的步骤。不知道如何用程序实现。

我可以将instagram API与从未更改的代码或访问令牌一起使用吗?

rest客户端自动请求get重定向主机。

https://github.com/rest-client/rest-client/blob/master/lib/restclient/abstract_response.rb

我还从来没有使用过instagram API,但在302上获取"位置"的代码如下所示。

# client
require 'net/http'
require 'uri'
url = URI.parse('http://localhost:2000')
res = Net::HTTP.start(url.host, url.port) do |http|
http.get('/')
end
puts "#{res.header['Location']} is https://google.com"
# test server
require 'socket'
server = TCPServer.new 2000
loop do
socket = server.accept
while header = socket.gets
break if header.chomp.empty?
puts header.chomp
end
socket.puts "HTTP/1.0 302"
socket.puts "Location: https://google.com"
socket.close
end

我希望这些信息对你有帮助。

最新更新