无法从使用ruby的google驱动器下载文件

时间:2015-05-08 18:30:28

标签: ruby-on-rails ruby google-drive-api

我正在尝试将我的rails控制器设置为按照以下代码从Google驱动器下载文件 - https://developers.google.com/drive/v2/reference/files/get

我有以下导轨代码

def download_file(client, file)
  if file.download_url
    result = client.execute(:uri => file.download_url)
    if result.status == 200
      return result.body
    else
      puts "An error occurred: #{result.data['error']['message']}"
      return nil
    end
  end
end

def attachExternalResume
  # read remote url to file
  file_id = params[:fileId]
  client = Google::APIClient.new
  drive = client.discovered_api('drive', 'v2')
  result = client.execute(
    :api_method => drive.files.get,
    :parameters => { 'fileId' => file_id}
  )
  if (result.status == 200)
    p download_file client, result.data
  end
end

这是使用谷歌选择器从我的javascript前端调用的。用户通过谷歌选择器授权我的应用程序并选择一个文件,导致我的角度javascript将文件ID发布到我的rails方法。在rails代码中我收到以下错误 - 缺少访问令牌。

似乎即使用户已授权前端的应用程序,该授权也没有进入导轨端。任何人都知道如何在整个过程中获得授权?

1 个答案:

答案 0 :(得分:0)

“我收到以下错误 - 缺少访问令牌。”可能意味着你错过了一个访问令牌。在您发布的代码段中,我无法看到您请求访问令牌的任何位置,因此更有可能。我不太了解Google Ruby库为您提供您缺少的代码,但寻找的东西需要范围应用程序/客户端ID 作为论点。