Oauth 开始使用Office 365 REST API

Oauth 开始使用Office 365 REST API,oauth,ms-office,office365,Oauth,Ms Office,Office365,我肯定有人问过相关问题,但我找不到答案。我正在尝试为Office 365制作一个简单的ruby api包装,但我不知道如何创建oauth应用程序(secret/token/callback url/) 在其他所有人的oauth/api世界中,您将进入一个开发人员门户,创建一个“应用程序”,该应用程序附带一个令牌和秘密,用于您的通用oauth库,以执行基于浏览器的三条腿身份验证。我不会接触任何windows/.net软件来实现这一点-我们在ruby land 我认为,根据文档,我需要前往windo

我肯定有人问过相关问题,但我找不到答案。我正在尝试为Office 365制作一个简单的ruby api包装,但我不知道如何创建oauth应用程序(secret/token/callback url/)

在其他所有人的oauth/api世界中,您将进入一个开发人员门户,创建一个“应用程序”,该应用程序附带一个令牌和秘密,用于您的通用oauth库,以执行基于浏览器的三条腿身份验证。我不会接触任何windows/.net软件来实现这一点-我们在ruby land

我认为,根据文档,我需要前往windows azure管理门户创建一些内容,但我无法确切地知道是什么-我创建的内容没有给我令牌/秘密/url-它不应该请求回调url/域吗

对于oauth gem,我正在寻找这些类型的细节

def connection(credentials)
  OAuth2::Client.new(
      credentials[:client_id],
      credentials[:client_secret],
      :site => credentials[:base_url],
      :authorize_url => '/api/v1/oauth2/authorize',
      :token_url => '/api/v1/oauth2/token'
  )
end

[2015年8月20日更新]:看起来在有一种新的入门体验,这将有助于注册你的应用程序,甚至用你选择的语言创建一个入门项目。我当然建议你先尝试一下,而不是按照下面列出的手动步骤进行


要手动注册应用程序(例如,不通过Visual Studio和),您需要转到Azure管理门户。根据您的Office 365租户的SKU,您可能可以使用您的O365帐户登录。如果没有,您可以手动关联Azure门户(例如,通过Live ID访问的门户)与您的O365租户联系。如果您需要此信息,请告诉我

假设您能够进入Active portal,请在那里找到Active Directory节点,然后选择与您的O365租户对应的目录

从中选择“应用程序”和“添加现有应用程序”以注册您的应用程序:

选择“添加我的组织正在开发的应用程序”

并填写详细信息:

创建应用程序后,转到配置选项卡。在那里,您将找到客户端ID,您可以生成密码,并且(可能最重要的是)为您的应用程序设置访问Office 365 API的权限

希望这有帮助

更新

注册应用程序后,我强烈建议您看看这里的示例:和。这些示例介绍了如何执行OAuth,您还可以看到使用哪些端点访问不同的服务(例如,SharePoint的服务发现示例)

在这些示例中,服务的API端点和资源ID信息可以在“Office365ServiceInfo.cs”文件下找到(在web应用程序的“Models”文件夹下和本机应用程序的“Office365”文件夹下),身份验证代码可以在web应用程序的“Controllers/Office365CommonController”和“Office365/Office365Helper”下找到对于本机应用程序,我还鼓励您阅读本教程的“探索项目结构”部分

更新2: 描述在Azure门户中添加和配置应用程序的MSDN文档可在以下位置找到:

更新3: MSDN中添加了新文档,其中包括上述步骤,以及如何访问O365开发人员站点的Azure门户:


~Michael

Wow-这让我比以前更进一步了:)这些URL的实际完整端点是什么authorize\u url=>'/api/v1/oauth2/authorize',:token\u url=>'/api/v1/oauth2/token'````特洛伊,OAuth url的形式通常是{tenant}/oauth2/authorize?response\u type=code&client\u id={client\u id}和resource={resource\u您希望访问的资源}和重定向\u uri={redirect}。您还将添加一个状态参数,以防止跨站点请求伪造攻击。租户可以硬编码到特定的租户,或者如果您希望它对任何租户都有效,您可以使用特殊的单词“common”。Troy,也可以查看我对上述问题的更新,以及到示例代码的链接,您可以在其中找到OAuth URL等。谢谢大家-我们有了Ruby包装的初始版本,我们将看看是否可以创建一些日历条目并返回报告。API文档对于如何进行预约与与会者邀请的会议有点模糊,但这里是;奇怪的是,找到这些信息有多么困难。几乎就好像Microsoft忘记了大多数开发人员并不是什么都使用.NET一样。我还发现这一点非常有用:这一点是最新的,而且运行良好: