
Security News
TC39 Advances 11 Proposals for Math Precision, Binary APIs, and More
TC39 advances 11 JavaScript proposals, with two moving to Stage 4, bringing better math, binary APIs, and more features one step closer to the ECMAScript spec.
MSPlanner Tools is a Python library designed to streamline interactions with Microsoft Planner via the Microsoft Graph API. This documentation provides an overview of the library's features, focusing on Authentication and managing OAuth2 tokens using the TokenManager class.
To further details and better navigation visit the project page on Github.
The TokenManager class provides a robust way to handle authentication and token management for accessing the Microsoft Graph API. This is essential for secure and seamless communication with Microsoft Planner.
Before using the TokenManager class, ensure you have the following:
Here's how to use the TokenManager class for authentication:
from msplanner_tools.authentication import TokenManager
# Replace with your Azure AD app credentials
client_id = 'your_client_id'
client_secret = 'your_client_secret'
tenant_id = 'your_tenant_id'
If you don't know how to register an Azure app, visit Microsoft how to register an app guide.
Permissions:
Here is an example on how to use the TokenManager class:
# Initialize the TokenManager
token_manager = TokenManager(client_id=client_id, client_secret=client_secret, tenant_id=tenant_id)
# Get a valid access token
access_token = token_manager.get_token()
print(f'Access Token: {access_token}')
# The get_token method ensures that a valid token is always returned, automatically handling token expiration.
Token Management Details
request_new_token
.is_token_expired
.# Using the token in an API request
import requests
# Get the access token
access_token = token_manager.get_token()
# Set up the headers for Microsoft Graph API requests
headers = {
'Authorization': f'Bearer {access_token}',
'Content-Type': 'application/json'
}
from msplanner_tools.plans import create_plan
from msplanner_tools.auth import TokenManager
token_manager = TokenManager(client_id=client_id, client_secret=client_secret, tenant_id=tenant_id)
plan_id = create_plan("my new plan", "my_group_id", token_manager.get_token())
if plan_id:
print("Plan successfully created!")
References
This section focuses on managing Microsoft Planner plans using the functions provided in the msplanner_tools.plans
module.
Return to the top
The msplanner_tools.plans
module provides functions to create, retrieve, update, and delete plans in Microsoft Planner via the Microsoft Graph API.
create_plan
Creates a new plan in Microsoft Planner.
Parameters:
plan_name
(str): Name of the plan to be created.group_id
(str): ID of the group to which the plan belongs.access_token
: Access token for the Microsoft Graph API.Returns:
str
: ID of the created plan.Example:
from msplanner_tools.plans import create_plan
from msplanner_tools.auth import TokenManager
token_manager = TokenManager(client_id=client_id, client_secret=client_secret, tenant_id=tenant_id)
plan_id = create_plan("my new plan", "my_group_id", token_manager.get_token())
if plan_id:
print("Plan successfully created!")
get_plan_by_id
Retrieves a plan based on its ID.
Parameters:
plan_id
(str): ID of the plan.access_token
: Access token for the Microsoft Graph API.Returns:
dict
: Dictionary containing the plan data.Example:
from msplanner_tools.plans import get_plan_by_id
plan = get_plan_by_id("plan_id", token_manager.get_token())
print(plan)
update_plan_by_id
Updates a plan based on its ID and name.
Parameters:
plan_id
(str): ID of the plan.plan_name
(str): New name of the plan.access_token
: Access token for the Microsoft Graph API.Returns:
None
Example:
from msplanner_tools.plans import update_plan_by_id
update_plan_by_id("plan_id", "updated plan name", token_manager.get_token())
print("Plan updated successfully.")
delete_plan_by_id
Deletes a plan based on its ID.
Parameters:
plan_id
(str): ID of the plan to be deleted.access_token
: Access token for the Microsoft Graph API.Returns:
None
Example:
from msplanner_tools.plans import delete_plan_by_id
delete_plan_by_id("plan_id", token_manager.get_token())
print("Plan deleted successfully.")
get_plans_by_group_id
Returns a list of all plans in a group.
Parameters:
group_id
(str): ID of the group.access_token
: Access token for the Microsoft Graph API.Returns:
list
: List of plans in the group.Example:
from msplanner_tools.plans import get_plans_by_group_id
plans = get_plans_by_group_id("group_id", token_manager.get_token())
print(plans)
list_plan_tasks_by_id
Returns a list of all tasks in a plan.
Parameters:
plan_id
(str): ID of the plan.access_token
: Access token for the Microsoft Graph API.Returns:
list
: List of tasks in the plan.Example:
from msplanner_tools.plans import list_plan_tasks_by_id
tasks = list_plan_tasks_by_id("plan_id", token_manager.get_token())
print(tasks)
References
This section focuses on managing Microsoft Planner tasks using the functions provided in the msplanner_tools.tasks
module.
Return to the top
The msplanner_tools.tasks
module provides functions to create, retrieve, update, and delete tasks in Microsoft Planner via the Microsoft Graph API.
create_task
Creates a new task in Microsoft Planner.
Parameters:
item_list
(dict): Dictionary with the task data:
title
(str): Task name.assignments
(list): List of owners' emails.startDateTime
(str): Task start date in the format YYYY-MM-DDTHH:MM:SSZ
.dueDateTime
(str): Task due date in the format YYYY-MM-DDTHH:MM:SSZ
.priority
(int): Task priority (1-5).labels_list
(list): List of labels in the format ['category1', 'category2', ...]
.bucket_id
(str): ID of the bucket to which the task belongs.plan_id
(str): ID of the plan to which the task belongs.access_token
(str): Access token for the Microsoft Graph API.group_id
(str): ID of the group to which the task belongs.Returns:
str
: ID of the created task.Example:
from msplanner_tools.tasks import create_task
from msplanner_tools.auth import TokenManager
token_manager = TokenManager(client_id=client_id, client_secret=client_secret, tenant_id=tenant_id)
item_list = {
"title": "New Task",
"assignments": ["owner@example.com"],
"startDateTime": "2023-01-01T00:00:00Z",
"dueDateTime": "2023-01-10T00:00:00Z",
"priority": 1,
"labels_list": ["category1", "category2"]
}
task_id = create_task(item_list, "bucket_id", "plan_id", token_manager.get_token(), "group_id")
if task_id:
print("Task successfully created!")
update_task_details
Updates a task based on its ID, task data, ETag, and access token.
Parameters:
task_id
(str): ID of the task to be updated.item_list
(dict): Dictionary with the task data to be updated.etag
(str): ETag value of the task, obtained with the get_task_etag
function.access_token
(str): Access token for the Microsoft Graph API.Returns:
None
Example:
from msplanner_tools.tasks import update_task_details
from msplanner_tools.auth import TokenManager
token_manager = TokenManager(client_id=client_id, client_secret=client_secret, tenant_id=tenant_id)
item_list = {
"description": "Updated task description",
"checklist": ["item1", "item2"]
}
etag = "etag_value"
update_task_details("task_id", item_list, etag, token_manager.get_token())
print("Task updated successfully.")
Next, continue to Buckets for interacting with Microsoft Planner resources.
The msplanner_tools.buckets
module provides functions to create, retrieve, and delete buckets in Microsoft Planner via the Microsoft Graph API.
Return to the top
create_bucket
Creates a new bucket in Microsoft Planner.
Parameters:
bucket_name
(str): Name of the bucket to be created.plan_id
(str): ID of the plan to which the bucket belongs.access_token
(str): Access token for the Microsoft Graph API.bucket_num
(int): Number of the bucket to be created (starts at 0).Returns:
str
: ID of the created bucket.Example:
from msplanner_tools.buckets import create_bucket
from msplanner_tools.auth import TokenManager
token_manager = TokenManager(client_id=client_id, client_secret=client_secret, tenant_id=tenant_id)
bucket_id = create_bucket("New Bucket", "plan_id", token_manager.get_token(), 0)
if bucket_id:
print("Bucket successfully created!")
delete_bucket_by_id
Deletes a bucket based on its ID.
Parameters:
bucket_id
(str): ID of the bucket to be deleted.access_token
(str): Access token for the Microsoft Graph API.Returns:
None
Example:
from msplanner_tools.buckets import delete_bucket_by_id
from msplanner_tools.auth import TokenManager
token_manager = TokenManager(client_id=client_id, client_secret=client_secret, tenant_id=tenant_id)
delete_bucket_by_id("bucket_id", token_manager.get_token())
print("Bucket deleted successfully.")
This section focuses on managing Microsoft Planner users using the functions provided in the msplanner_tools.users
module.
Return to the top
The msplanner_tools.users
module provides functions to retrieve user information from Microsoft Planner via the Microsoft Graph API.
find_user_id_by_email
Finds a user ID based on their email address.
Parameters:
email
(str): Email address of the user.group_id
(str): ID of the group to which the user belongs.access_token
(str): Access token for the Microsoft Graph API.Returns:
str
: ID of the user.Example:
from msplanner_tools.users import find_user_id_by_email
from msplanner_tools.auth import TokenManager
token_manager = TokenManager(client_id=client_id, client_secret=client_secret, tenant_id=tenant_id)
user_id = find_user_id_by_email("user@example.com", "group_id", token_manager.get_token())
print(f'User ID: {user_id}')
References
FAQs
Library to interact with Microsoft Planner via API Graph
We found that msplanner-tools demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
TC39 advances 11 JavaScript proposals, with two moving to Stage 4, bringing better math, binary APIs, and more features one step closer to the ECMAScript spec.
Research
/Security News
A flawed sandbox in @nestjs/devtools-integration lets attackers run code on your machine via CSRF, leading to full Remote Code Execution (RCE).
Product
Customize license detection with Socket’s new license overlays: gain control, reduce noise, and handle edge cases with precision.