Rails中的OAuth2 - Outlook 365 API发送额外参数

时间:2016-10-13 20:56:29

标签: ruby-on-rails oauth-2.0 office365

我正在尝试从Rails 5应用程序与Office 365 API进行通信。我无法申请我需要的“范围”。根据这篇文章https://azure.microsoft.com/en-us/documentation/articles/active-directory-v2-compare/,我需要将范围作为额外参数发送到请求中。我已将范围添加到https://apps.dev.microsoft.com/的应用程序注册中,但这似乎还不够。我试图请求的范围是Calendar.ReadWrite和offline_access。使用OAuth2 ruby​​ gem,如何将这些范围作为请求的一部分发送?我正在创建我的OAuth客户端,如下所示:

client = OAuth2::Client.new(ENV['APPLICATION_ID_OUTLOOK_API'],
                            ENV['APPLICATION_ID_OUTLOOK_SECRET'],
                            :site => "https://login.microsoftonline.com",
                            :authorize_url => "/common/oauth2/v2.0/authorize",
                            :token_url => "/common/oauth2/token")

我已尝试将另一个哈希添加到此构造函数中,如下所示:

 :scope => "https://outlook.office.com/calendar.readwrite https://outlook.office.com/offline_access"

但这不起作用。

我的目的是使用outlook_ruby gem来读取和写入日历。据我所知,这个gem需要outlook.office.com范围才能运行。目前,当我尝试使用OAuth令牌执行任何功能时,我从此请求中返回,我收到了401 Unauthorized消息。

0 个答案:

没有答案