我试图为已安装的应用程序获取一个纯粹的命令行oauth流程,并不容易将它拼凑在一起......文档非常缺乏...我开始使用驱动器示例( https://github.com/google/google-api-ruby-client-samples/tree/master/drive)但是当它到达client.authorization = flow.authorize(file_storage)
时,它会尝试启动webrick来建立一个网页。我需要的东西与谷歌提供的CLI工具类似:它需要打印出我需要访问的URL,然后读取我可以复制和粘贴的响应。这可能与谷歌ruby客户端?
答案 0 :(得分:1)
看起来以下猴子补丁有效:
module Google
class APIClient
class InstalledAppFlow
def authorize_cli(storage)
puts "Please visit: #{@authorization.authorization_uri.to_s}"
printf "Enter the code: code="
code = gets
@authorization.code = code
@authorization.fetch_access_token!
if @authorization.access_token
if storage.respond_to?(:write_credentials)
storage.write_credentials(@authorization)
end
@authorization
else
nil
end
end
end
end
end