Get started with Office 365 REST API

2019-01-30 14:58发布

问题:

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

回答1:

[Update Aug 20th, 2015]: It looks like there is a new getting started experience at http://dev.office.com/getting-started/office365apis, 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