我正在尝试使用Instagram API创建Rails后台工作者以查询主题标签。我不需要登录任何其他用户,但是我自己,我也不想使用任何浏览器,而无需使用RESTful调用。
我正在尝试使用gem“ rest-client”(https://github.com/rest-client/rest-client)自动在Ruby脚本中获取访问令牌
我可以在浏览器中成功导航到以下网址,并从响应网址获取访问令牌
我同时使用了以下URL: https://www.instagram.com/oauth/authorize/?client_id=xxx&redirect_uri=xxx&response_type=token
但是,当我使用RESTful gem response = RestClient.get(url)
时,
response.headers['location']
为零
我也尝试使用Instagram API URL,但没有运气:https://api.instagram.com/oauth/authorize/?client_id=xxx&redirect_uri=xxx&response_type=code
有人知道如何在Ruby中以编程方式完全获取访问令牌吗?
我认为我缺少登录用户的步骤(将是我)。不确定如何以编程方式执行此操作。
我可以将instagram API与永远不变的代码或访问令牌一起使用吗?
答案 0 :(得分:0)
rest-client自动请求获取重定向主机。
https://github.com/rest-client/rest-client/blob/master/lib/restclient/abstract_response.rb
我还没有使用过instagram API,但是下面显示了获取“ Location”在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
我希望这些信息对您有所帮助。