-
Notifications
You must be signed in to change notification settings - Fork 46
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Planner support #22
Comments
I am slowly brewing PR #23 if anyone wants to give me feedback. I might not have enough fuel to make this 100% polished and feature complete, but what I have has already allowed me to accomplish my task. Great work on this package! |
I haven't got any definitive plans for feature additions, beyond Outlook; Planner can certainly be added to the list. Thanks for your great PR! |
This is definitely something worthy to explore further! We use Microsoft Planner extensively at our organisation and our team uses RStudio Workbench. This would allow us to automate our workflows in RStudio with MS Planner! Can you let me know what else would be needed for a full implementation? I can also collaborate - I'm a vivid R dev. |
Btw, the Outlook implementation and documentation are 😍😍 |
Thanks! I think all that's needed is an easy way to modify plans and tasks. This shouldn't be too hard, as the underlying AzureGraph machinery already lets you call the REST API to do this. What's needed is to wrap these calls into R6 methods for the plan and task classes. Have a look at the |
Great. I’ll read into it and start making some updates to the |
API documentation for tasks and plans: https://docs.microsoft.com/en-us/graph/api/resources/planner-overview?view=graph-rest-beta |
I can't get the initial implementation to work @romanzenka. There is an R6 definition of
Since users can have multiple plans, I think it should be implemented like this, analogous to the current
Not sure if the latter three lines are supported by the REST API. Nonetheless, I think this should become possible: # all tasks that authorised user is allowed to get:
get_planner()$get_tasks()
# only tasks within a certain plan (i.e., what Trello calls a 'board')
get_planner()$get_plan(...)$get_tasks()
# only tasks within a certain bucket (i.e., what Trello calls a 'list')
get_planner()$get_plan(...)$get_bucket()$get_tasks() Last thing is, should there be a difference in Let me know if you agree with this concept. I'm not an admin of our organisation, so can't test everything I code. |
Ah, per https://docs.microsoft.com/en-us/graph/permissions-reference:
Since all group permission require Admin Consent, that leaves me out for using and testing the Planner API 😞 |
I am okay with complicating the API further if that is helpful. I go directly to the plan, skipping over the object that represents the planner itself. I have no use for the planner use-cases you describe (show every task a user owns for instance in any plan) and I do not really see the utility, however I can see why one would like to obtain a list of all plans. As to the access rights - I have a group with planner that I control-ish, so that is how I tested the code. If Microsoft does not let you do something, there is little we can do in code... |
As far as I know, all the tasks/plans calls are enabled by the Group.Readwrite.All permission, which is part of the default Microsoft365R app registration as well as all of the workarounds listed here. So if you're getting an error, you must be calling the API incorrectly. Separating out |
The |
If folks are curious, I'm working on an extension package for I haven't implemented functions for buckets yet but I do have functions for plans: https://elipousson.github.io/sharepointr/reference/sp_plan.html And for tasks: https://elipousson.github.io/sharepointr/reference/sp_tasks.html For both functions, I implemented the |
Hello,
We would like to use programmatic access to the Microsoft Planner functionality so we can do some data science on tasks we are performing.
I will be trying to add planner support, I just wanted to know if you were planning this already (pun intended), would be interested in adding that functionality, or if it is out of scope forever.
The text was updated successfully, but these errors were encountered: