我正在尝试使用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
我希望这些信息对你有帮助。