开始使用Office 365 REST API

33

我相信有类似的问题已经被问过了,但是我找不到这个答案。我正在尝试为Office 365制作一个简单的Ruby API包装器,但我无法弄清如何创建OAuth应用程序(密钥/令牌/回调URL等)。

在其他人的OAuth/API世界中,您可以前往开发者门户并创建一个“应用程序”,该应用程序附带一个令牌和密钥,可与通用OAuth库一起使用以进行基于浏览器的3个步骤的身份验证。我不打算使用任何Windows/.NET软件来完成此操作--我们在Ruby领域。

根据文档,我认为我需要前往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

8
很奇怪,找到这个信息如此困难,似乎微软忘记了大多数开发人员并非将.NET用于所有事情。 - Andrew Thaddeus Martin
我也发现这个链接非常有用:http://paulryan.com.au/2014/spo-remote-authentication-rest/ - potame
这个链接是最新的,功能正常:https://docs.printandshare.info/hands-on/email/send-emails-via-office365-azure - juFo
1个回答

41

[2015年8月20日更新]:看起来有一个新的开始入门体验,它将帮助您注册应用程序,甚至创建一个以您选择的语言为基础的初始项目。我强烈建议您先尝试这个,而不是按照下面概述的手动步骤操作。


要手动注册应用程序(例如,不通过Visual Studio和Office 365 API工具),您需要转到Azure管理门户https://manage.windowsazure.com/。根据您的Office 365租户SKU,您可以使用O365帐户登录。如果不能,则有一个手动步骤,您可以执行该步骤将Azure门户(例如,通过Live ID访问的门户)与您的O365租户关联起来。如果您需要此信息,请告诉我。
假设您能够进入Active门户,请在那里找到Active Directory节点,并选择对应于您的O365租户的目录。
从那里,选择“应用程序”和“添加现有项”以注册您的应用程序: 选择“应用程序”和“添加现有项”以注册您的应用程序: 选择“添加我的组织正在开发的应用程序” 选择“添加我的组织正在开发的应用程序” 请填写详细信息: 填写详细信息(第一步) 填写详细信息(第二步) 创建应用程序后,转到配置选项卡。您将找到客户端ID,可以生成密钥,并且(可能最重要的是)设置应用程序访问Office 365 API的权限。

Configure Tab with client ID, permissions, etc

希望这能帮到你!
更新:
在注册应用程序后,我强烈建议您查看此处找到的示例:Web appNative(在本例中为Windows 8.1)app。 这些示例展示了如何执行OAuth的优秀示例,并且您还可以查看用于访问不同服务的端点以及例如SharePoint的服务发现示例。
在这些样本中,可以在“Office365ServiceInfo.cs”文件(Web应用程序的“Models”文件夹和原生应用程序的“Office365”文件夹下)中找到有关服务的API终结点和资源ID信息,并且在Web应用程序的“Controllers/Office365CommonController”和原生应用程序的“Office365/Office365Helper”下找到授权代码。我还建议您阅读此博客文章中的“探索项目结构”部分。 更新2: 可以在此处找到MSDN文档,其中描述了在Azure门户中添加和配置应用程序:http://msdn.microsoft.com/en-us/library/dn132599.aspx

更新3: 新增了MSDN文档,涵盖了上述步骤以及如何访问您的O365 Dev网站的Azure Portal的方法: http://msdn.microsoft.com/en-us/library/office/dn736059(v=office.15).aspx

~Michael


哇 - 这让我比之前更进一步了 :)这些URL的实际完整端点是什么? :authorize_url => '/api/v1/oauth2/authorize', :token_url => '/api/v1/oauth2/token' - Troy Anderson
特洛伊,OAuth URL 通常采用以下格式:https://login.windows.net/{tenant}/oauth2/authorize?response_type=code&client_id={client_id}&resource={resource_you_want_to_access}&redirect_uri={redirect}。您还需要添加一个状态参数,以防止跨站点请求伪造攻击。租户可以硬编码到特定租户,或者如果您希望它针对任何租户工作,则可以使用特殊单词“common”。 - Michael Zlatkovsky - Microsoft
特洛伊,还请看一下我在上面问题中的更新,其中包含样例代码链接,你可以在里面找到OAuth URL等更多信息。 - Michael Zlatkovsky - Microsoft
谢谢大家 - 我们已经有了 Ruby 封装的初始版本,我们将尝试创建一些日历条目并回报。API 文档对于如何创建带有参与者邀请的约会和会议有点模糊,但在这里;https://gist.github.com/theinventor/9954855 - Troy Anderson
@MichaelZlatkovsky-Microsoft 你的大部分链接都失效了 :(. 我不知道它们原本应该指向哪里。但如果有人可以编辑并修复它们,那就太好了 :D - Allart
@Allart,我早已加入了另一个团队 - 但我会将此转发给可能知道http://dev.office.com/getting-started/office365apis现在应该指向哪里的人,并且如果我收到回复,可以更新此答案的顶部。 - Michael Zlatkovsky - Microsoft

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接