2014-03-26 138 views
24

我确信已经提出了相关问题,但我找不到此答案。我试图为Office 365制作一个简单的ruby api包装,并且我无法弄清楚如何获得创建的oauth应用程序(secret/token/callback url /)。开始使用Office 365 REST API

在其他人的oauth/api宇宙中,前往开发人员门户网站并创建一个“应用程序”,该应用程序附带一个令牌和秘密,以便与您的通用oauth库一起使用,以执行基于3种浏览器的身份验证。我不打算使用任何windows/.net软件来实现此目的 - 我们在红宝石土地

我想基于我需要前往Windows Azure管理门户创建一些文件,但我想不出到底是什么 - 我并创造不给我东西令牌/秘密/网址 - 不应该要求回拨网址/域名吗?

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

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 
+2

找到这些信息是多么的困难。几乎就像微软忘记了大多数开发人员并没有使用.NET的所有东西。 –

+0

我也发现这相当有用:http://paulryan.com.au/2014/spo-remote-authentication-rest/ – potame

回答

36

[更新2015年8月20日]:它看起来像有在http://dev.office.com/getting-started/office365apis新入门的经验,这将有助于注册您的应用程序,甚至在语言创建一个启动项目的选择。我肯定会推荐首先尝试,而不是通过下面列出的手动步骤。


要手动注册应用程序(例如,不通过Visual Studio和Office 365 API Tools),你需要去Azure管理门户网站https://manage.windowsazure.com/。根据您的Office 365租户的SKU,您可以使用您的O365帐户登录。如果没有,您可以通过手动步骤将Azure门户(例如通过Live ID访问的门户)与您的O365租户相关联。让我知道你是否需要这些信息。

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

在那里,选择“应用程序”和“添加现有”来注册你的应用程序: Select "Applications" and "Add Existing" to register your app:

选择“添加应用程序我的组织正在制定” Choose "Add an application my organization is developing"

,并填写详细信息: Fill out the details (Step 1) Fill out the details (Step 2)

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

Configure Tab with client ID, permissions, etc

希望这有助于!

UPDATE

注册程序后,我会强烈建议你看看这里找到样本:Web appNative (in this case, Windows 8.1) app。这些例子提供了如何执行OAuth的很好的例子,您还可以看到用于访问不同服务的端点(例如SharePoint的服务发现示例)。

在示例中,API端点&服务的资源ID信息可在“Office365ServiceInfo.cs”文件(位于Web应用程序的“模型”文件夹和本机应用程序的“Office365”文件夹下)中找到,auth代码可以在Web应用程序的“Controllers/Office365CommonController”下找到,而本机应用程序可以找到“Office365/Office365Helper”。我还鼓励您阅读this blog post的“探索项目结构”部分。

更新2http://msdn.microsoft.com/en-us/library/dn132599.aspx

更新3: 新的文件已经被添加到MSDN,其中涵盖了描述添加和配置在Azure的门户应用程序可以在这里找到 MSDN文档以上步骤,以及如何获得访问Azure的门户网站为您O365开发网站:http://msdn.microsoft.com/en-us/library/office/dn736059(v=office.15).aspx

〜迈克尔

+0

哇 - 这让我有很多比我更多:) 什么将实际满终点是为这些网址? '''' :authorize_url => '/ API/V1 /的oauth2 /授权', :TOKEN_URL => '/ API/V1 /的oauth2 /令牌' '''' –

+0

特洛伊,所述的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”,如果您希望它对任何租户都有效。 –

+0

特洛伊,也看到我对上述问题的更新,带有示例代码的链接,您可以在其中找到OAuth URL等。 –

3

另请参阅我最近上提供的OAuth访问此博客:http://blogs.msdn.com/b/exchangedev/archive/2014/03/25/using-oauth2-to-access-calendar-contact-and-mail-api-in-exchange-online-in-office-365.aspx

请注意,我们不建议使用“具有完全访问用户邮箱”,并在可能的情况,请与任何其他更细粒度的权限的工作。此外,“完全访问用户邮箱”需要管理员同意,因此如果您希望普通最终用户(无管理员)同意您的应用,则如果您选择此权限,则无法这样做。

6

我们在http://dev.office.com/getting-started/office365apis有一个新的入门体验,可以帮助您快速调用Office 365 API,我们希望您选择的语言。此页面还将引导您完成内嵌的初始应用注册。

p.s.我在这方面做了很多工作,所以如果这有帮助,或者我们可以如何让它更容易入门,那么就会喜欢任何反馈。

+0

它更容易理解this.I采取了PHP的方法,迄今如此好。伟大的工作 – GotaloveCode

1

这是最近开始使用office 365 rest api的示例。 https://code.msdn.microsoft.com/How-to-login-on-office-365-4d619710

此示例演示如何登录Office 365并使用Web应用程序获取REST帐户信息。 当用户访问该网站时,他们将被重定向到Office 365以完成身份验证。然后,他们会通过代码向我们的网站发送请求REST API的令牌。最后,他们将获得用户帐户信息和图片与令牌。