Table of contents
- Device requirement
- Prerequisites
- Azure client application registration
- Configure the project
- Run the project
- How the sample affects your tenant data
- Understand the code
- Questions and comments
- Contributing
- Additional resources
Looking to build cool apps that help people work with their Office 365 data? Explore, learn, and understand the Microsoft Graph (previously called Office 365 unified API) REST APIs by using the Android Microsoft Graph API REST Snippets sample. This sample shows you how to access multiple resources, including Microsoft Azure Active Directory and the Office 365 APIs, by making HTTP requests to the Microsoft Graph API in an Android application.
You can explore the following operations for Office 365:
Me
- Get information about the signed in user.
- Get the user's responsibilities.
- Get the user's manager.
- Get the user's direct reports.
- Get the user's photo.
- Get the groups the user is a member of.
Users
- Get users from your tenant's directory.
- Get users filtered by criteria from your tenant's directory.
- Create a new user.
Events
- Get the signed-in user's events from Office 365.
- Create a new event for the user.
- Update a user's event.
- Delete a user's event.
Messages
Contacts
Groups
- Get all groups in your tenant's directory.
- Create a new group.
- Get information about a specific group in the tenant.
- Update the description of a group.
- Delete a group.
- Get a group's members.
- Get a group's owners.
Drives
- Gets the signed-in user's drive.
- Gets all of the drives in your tenant.
- Gets all of the files in the user's root folder.
- Creates a new file in the user's root folder.
- Downloads a file from the user's root folder.
- Updates the contents of a file in the user's root folder.
- Deletes a file in the user's root folder.
- Renames a file in the user's root folder.
- Creates a folder under the user's root folder.
To run the Microsoft Graph API REST snippets project, your device must meet the following requirement:
- Android API level 21 or newer
To use the Microsoft Graph API REST snippets project, you need the following:
- The latest version of Android Studio.
- The Gradle build automation system version 5.1.1 or later.
- An Office 365 account. You can sign up for an Office 365 Developer subscription that includes the resources you need to start building Office 365 apps.
- Java Development Kit (JDK) 7.
- A registered Azure application with a client id and redirect URI value. See Grant permissions to the Snippets application in Azure for details about how to create the correct permissions.
-
Open a browser and navigate to the Azure Active Directory admin center. Login using a Work or School Account.
-
Select Azure Active Directory in the left-hand navigation, then select App registrations under Manage.
-
Select New registration. On the Register an application page, set the values as follows.
- Set a preferred Name e.g.
AndroidSnippets
- Set Supported account types to Accounts in any organizational directory.
- Set a preferred Name e.g.
-
Choose Register. On the AndroidSnippets app page, select Overview and copy the value of the Application (client) ID and save it, you will need it in the next step.
-
Still on the app page, select Authentication. Locate the section Redirect URIs. In the Suggested Redirect URIs for public clients(mobile,desktop), check the second box so that the app can work with the MSAL libraries used in the application. (The box should contain the option msal<YOUR_CLIENT_ID>://auth). Choose Save.
To learn about authenticating with MSAL for Android to make calls to Microsoft Graph, see Call the Microsoft Graph API from an Android app.
- Download or clone the Android Microsoft Graph Snippets sample.
- Start Android Studio.
- From the Welcome to Android Studio dialog box, choose Import project (Eclipse ADT, Gradle, etc).
- Select the settings.gradle file in the O365-Android-Unified-API-Snippets folder, and then click OK.
- Respond to the dialog box ("Gradle Sync: Gradle settings for this project are not configured yet. Would you like the project to use the Gradle wrapper? ") by clicking the OK button to use the Gradle wrapper.
- Open the ServiceConstants.java file in the folder java > com.microsoft.office365.msgraphsnippetapp.
- Find the CLIENT_ID string and replace the value ENTER_YOUR_CLIENT_ID with the Application (client) ID that you copied in the previous step.
- Open the AndroidManifest.xml file in the app > manifests folder.
- Replace the ENTER_YOUR_CLIENT_ID with the Application (client) ID that you copied in the previous step.
After you've built the project you can run it on an emulator or device.
- Run the project.
- Click the Connect to Office 365 button to sign in to Office 365.
- Enter your credentials.
- Review and accept the permission scopes requested by the app.
- Click a REST operation in the main activity to show operation details.
- Click the RUN button to start the REST operation and wait for the operation to finish.
- Click in the Response Headers or Response Body text boxes to copy the box contents to the emulator/device clipboard.
- Click the back button on the REST Explorer toolbar to return to the REST operation list.
- (Optional) Click the overflow menu to get the Disconnect menu option.
This sample runs REST commands that create, read, update, or delete data. When running commands that delete or edit data, the sample creates fake entities. The fake entities are deleted or edited so that your actual tenant data is unaffected. The sample will leave behind fake entities on your tenant.
The Office 365 Android unified API snippets project uses these classes to manage interactions with the Microsoft Graph API on Office 365:
The Office 365 Android unified API snippets project is comprised of three modules. The modular design enables you to build a new app based on this sample by importing the modules into your app. After you've imported the modules, use the code in the Office 365 Android unified API snippets app module as an example of how to call methods in the other sample modules.
o365-Auth
. This module contains the library calls to authenticate a user with Office 365.unifiedapi
. This module encapsulates the Retrofit REST operations used for the Office 365 Microsoft Graph API endpoint.app
. The UI and business logic module. REST operations are started in the snippet classes in this module.
A snippet runs a single REST operation and returns the results. Snippets are found in the app module. Snippets set the state required to make the calls on the Microsoft Graph API service classes described below.
These classes are found in the unifiedapi module and make the Retrofit library calls that generate the REST queries and handle operation results. These service classes are consumed by the snippets.
MSGraphContactService
MSGraphEventsService
MSGraphGroupsService
MSGraphMailService
MSGraphUserService
The authentication classes are found in the o365-Auth module. These classes use the Microsoft Azure Active Directory Library (ADAL) for Android to connect to a business version of Office 365 such as Office 365 Enterprise.
AuthenticationManager
. Encapsulates user connect and disconnect logic in addition to Azure app authorization.AzureADModule
. Authentication helper class.AzureAppCompatActivity
. Dependency injection helper.
We'd love to get your feedback about the Android Microsoft Graph API REST Snippets sample. You can send your feedback to us in the Issues section of this repository.
General questions about Office 365 development should be posted to Stack Overflow. Make sure that your questions are tagged with [Office365] and [API].
If you'd like to contribute to this sample, see CONTRIBUTING.MD.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
Copyright (c) 2019 Microsoft. All rights reserved.