安装的应用程序是否有纯粹的命令行oauth流程?

时间:2014-09-05 22:19:10

标签: google-api-ruby-client

我试图为已安装的应用程序获取一个纯粹的命令行oauth流程,并不容易将它拼凑在一起......文档非常缺乏...我开始使用驱动器示例( https://github.com/google/google-api-ruby-client-samples/tree/master/drive)但是当它到达client.authorization = flow.authorize(file_storage)时,它会尝试启动webrick来建立一个网页。我需要的东西与谷歌提供的CLI工具类似:它需要打印出我需要访问的URL,然后读取我可以复制和粘贴的响应。这可能与谷歌ruby客户端?

1 个答案:

答案 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