Jay*_*dse 7 ruby oauth google-docs gdata
我想在Ruby中编写一个脚本(使用gdata gem,rest-client gem或直接使用Net :: HTTP),使用gmail-userid/password对我的google文档进行身份验证,然后下载私有文档和文档列表.
的的GData文件引导清楚如何让公开可见的文件,但现在还不清楚我怎么能在我的脚本验证自己以访问私人文件.他们指定的身份验证方法似乎都需要人工干预,无论是使用Capcha还是某种形式的OAuth/OpenID重定向.
有没有办法只用一个用户ID /密码组合访问我的私人文件?或者也许与API密钥一起?如果是这样,任何人都可以告诉我该怎么做?
小智 5
因此,有时放弃,继续前进,以新的心态回归可以创造奇迹.我今天早上又开始看这个,并在几个小时内让它工作.
我放弃了OAuth,因为Ruby OAuth gem似乎以基于Web的应用程序为中心.我开始在谷歌数据上使用Rails,并使用ClientLogin,进行身份验证是没问题的,据我所知,除非你输入错误的凭据,否则你不会收到CAPTCHA请求......或者至少我还没见过任何其他的东西.
以下是导出电子表格文件的简单代码段:
require 'gdata/client'
require 'gdata/http'
require 'gdata/auth'
client = GData::Client::Spreadsheets.new
client.clientlogin('username', 'password')
test = client.get("http://spreadsheets.google.com/feeds/download/spreadsheets/Export?key="resource_ID"&fmcmd&exportFormat=xls")
file = File.new("spreadsheet.xls", "wb")
file.write test.body
file.close
Run Code Online (Sandbox Code Playgroud)
小智 0
我今天开始了这个完全相同的项目,并遇到了同样的问题。我已经设法使用 OAuth 或 OpenID,但仍在努力实际下载文件......这似乎应该是简单的部分。无论如何,这就是我所做的:
我正在使用 Mechanize gem 来抓取 docs.google.com 页面上的用户名和密码表单。我通过 Mechanize 提交了我的凭据,现在可以访问我的 Google 文档。
此时我发现我可以使用此 Google 文档中提到的下载 URL:
http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html#DownloadingDocs
URL 如下所示(我正在使用电子表格):
“http://spreadsheets.google.com/feeds/download/spreadsheets/Export?key="resource_id_goes_here"&exportFormat=xls"
对于修补/测试,我只是从网络浏览器的地址栏中获取电子表格的资源 ID(当我在浏览器中打开电子表格时)并将其插入浏览器另一个选项卡中的上述 URL 中。这似乎有效,因为当我提交 URL 时,电子表格会作为 .xls 文件下载。请注意,这一切都是使用我的网络浏览器。
我无法通过 Ruby 脚本成功启动下载。该 URL 不是文件的直接链接,因此我不太确定如何正确捕获文件数据。该脚本成功运行,但如果我将 Ruby 'get' 方法的输出(使用该 URL 作为参数)存储在一个对象中,它似乎是一些 javascript 重定向的东西。我可能忽略了一些显而易见的事情,但这就是我所处的位置。我把责任归咎于花在阅读 OAuth 和 OpenID 上的时间……这并不有趣。
希望其中一些有用。这是我在身份验证研究中遇到的另一个有趣的 Ruby gem:
OAuth Ruby Gem: http://oauth.rubyforge.org/
| 归档时间: |
|
| 查看次数: |
3037 次 |
| 最近记录: |