且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

开始使用 Office 365 REST API

更新时间:2023-02-08 09:04:18

[Update Aug 20th, 2015]:看起来有一个新的 和 本机(在此案例,Windows 8.1) 应用程序.这些示例提供了如何执行 OAuth 的绝佳示例,您还可以查看使用哪些端点访问不同的服务(例如,SharePoint 服务发现示例).

在示例中,API 端点 &可以在Office365ServiceInfo.cs"下找到服务的资源 ID 信息.文件(在 Web 应用程序中的Models"文件夹和本机应用程序的Office365"文件夹下),并且可以在Controllers/Office365CommonController"下找到授权代码.用于 Web 应用程序和Office365/Office365Helper"对于本机应用程序.我还鼓励您阅读探索项目结构"一文.这篇博文.

更新 2:可在此处找到描述在 Azure 门户中添加和配置应用程序的 MSDN 文档:http://msdn.microsoft.com/en-us/library/dn132599.aspx

更新 3:MSDN 中添加了新文档,其中涵盖上述步骤以及如何访问 O365 开发站点的 Azure 门户:http://msdn.microsoft.com/en-us/library/office/dn736059(v=office.15).aspx

~迈克尔

I'm sure related questions have been asked, but I cannot find this answer. I'm trying to make a simple ruby api wrapper for Office 365, and I can't figure out how to get an oauth app created (secret/token/callback url/.

In everyone else's oauth/api universe you head to a developer portal and create an 'Application' which comes with a token and secret to use with your generic oauth library to do the 3 legged browser based authentication. I am not going to touch any windows/.net software to accomplish this - we are in ruby land.

I think based on the documentation I need to head to the windows azure management portal to create something, but I can't figure out exactly what - and the things I did create are not giving me token/secret/urls - shouldn't it ask for the callback url/domain?

For the oauth gem, I'm looking for these types of details;

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

[Update Aug 20th, 2015]: It looks like there is a new getting started experience, which will help register your app, and even create a starter project in the language of your choice. I would certainly recommend trying that first, rather than going through the manual steps outlined below.


To register apps manually (e.g., not through Visual Studio and Office 365 API Tools), you will need to go to the Azure Management portal at https://manage.windowsazure.com/. Depending on the SKU of your Office 365 tenant, You may be able to sign in with your O365 account. If not, there's a manual step you can do to associate an Azure portal (e.g., one accessed via a Live ID) with your O365 tenant. Let me know if you need this information.

Assuming you are able to get into the Active portal, find the Active Directory node there, and choose the directory that corresponds to your O365 tenant.

From there, select "Applications" and "Add Existing" to register your app:

Choose "Add an application my organization is developing"

And fill out the details:

Once the application is created, go to the configure tab. There you will find the client ID, you can generate the secret, and (maybe most importantly) set permissions for your app to access the Office 365 APIs.

Hope this helps!

UPDATE:

After registering the app, I would highly encourage you to look at the samples found here: Web app and Native (in this case, Windows 8.1) app. These have great examples of how to do OAuth, and you can also see what endpoints are used to access the different services (and an example of Service Discovery for SharePoint, for example).

Within the samples, the API endpoint & Resource ID information for services can be found under the "Office365ServiceInfo.cs" file (under "Models" folder in web app and "Office365" folder for native app), and the auth code can be found under "Controllers/Office365CommonController" for the web app and "Office365/Office365Helper" for the native app. I would also encourage you to read the "Exploring the Project Structure" section of this blog post.

UPDATE 2: MSDN documentation that describes adding and configuring applications in the Azure portal can be found here: http://msdn.microsoft.com/en-us/library/dn132599.aspx

UPDATE 3: New documentation has been added to MSDN, which covers both the steps above, and also how to get access to the Azure Portal for your O365 Dev Site: http://msdn.microsoft.com/en-us/library/office/dn736059(v=office.15).aspx

~Michael