背景:
尝试在Ruby中查找和使用一个库,该库将允许从MS Project Online访问OData源。目的是能够阅读有关项目管理系统中存储的项目和资源的信息。
问题:
找到两个用于ODATA访问的主要Ruby宝石
尝试访问的服务是通过HTTPS;通常类似于https://mysite.sharepoint.com/sites/pwa/_api/ProjectData/Projects由于它是经过身份验证的服务,因此也会有用户名和密码。但问题是身份验证失败,尽管通过Excel数据连接使用同一服务我能够访问项目列表
测试:
使用Odata的代码尝试看起来像:
# https://github.com/visoft/ruby_odata
require 'ruby_odata'
svc = OData::Service.new "https://blogfodder.sharepoint.com/sites/pwa/_api/ProjectData/Projects/",{:username => "blah", :password => "xxxxxx"}
svc.Projects
运行此代码会产生以下错误:
/Users/grantsayer/.rvm/gems/ruby-2.2.0@odata/gems/rest-client-1.8.0/lib/restclient/abstract_response.rb:74:in `return!': 403 Forbidden (RestClient::Forbidden)
这当然表明身份验证是一个问题。问题是我能够通过Excel和Web浏览器执行此连接,而不是通过API。
替代库(Odata)虽然没有产生身份验证错误但最终没有返回数据。
欢迎提出建议。