Problem/Motivation
JWT Deprecation - The JWT app type will be completely deprecated as of June 2023. New and current users will have 12 months to migrate their JWT based solutions to the server-to-server OAuth app type.
See https://marketplace.zoom.us/docs/guides/build/jwt-app/jwt-faq/
Currently this module relies on the JWT app type in Zoom. It looks like we'll need to migrate to the Create a Server-to-Server OAuth App
It probably makes sense to make this a 3.x
version of this module since it will require users to at least reconfigure the module from at least an authentication standpoint. My hope is that there would be no change to other aspects of the module.
Roadmap for 3.0.x
Remove JWT DependencyAdd D10 Compatibility- Mostly complete. Ran through Drupalcheck and merged in automated fixes.Add API Tools (apitools) to handle the config form & client.Add support for Zoom's server to server OauthUpdate automated tests.Add documentation for moving from 2.x to 3.x
Config Form Options Needed
These are options needed for Server to Server Oauth & Webhooks (aka Event Notifications).
- Account ID
- Client ID
- Client secret
- Event Secret Token
Comments
Comment #2
perfectcu.be CreditAttribution: perfectcu.be as a volunteer and commented
+1, Thanks!
Comment #3
joelsteidl CreditAttribution: joelsteidl at Aten Design Group commented
We've started a 3.0.x branch for this and hope to have a dev version up by the end of year.
Comment #4
joelsteidl CreditAttribution: joelsteidl at Aten Design Group commented
Issue summary: | View changes |
Comment #5
joelsteidl CreditAttribution: joelsteidl at Aten Design Group commented
Issue summary: | View changes |
Comment #6
joelsteidl CreditAttribution: joelsteidl at Aten Design Group commented
Issue summary: | View changes |
Following; thanks - came here hoping there was already a roadmap as I require this for my project too!
Comment #8
joelsteidl CreditAttribution: joelsteidl at Aten Design Group commented
We are still working on 3.x, but I went ahead and released a 2.1.0 version that supports Drupal 10.
Comment #9
joelsteidl CreditAttribution: joelsteidl at Aten Design Group commented
This is a proof of concept (super rough) of how the client will need to be refactored.
https://gist.github.com/joelsteidl/fad398aab245b828a13a218e9640ad0a
Each request will need to include an access token as the Authorization header.
Comment #10
joelsteidl CreditAttribution: joelsteidl at Aten Design Group commented
We are targeting the end of March 2023 for this to be available.
Comment #11
joelsteidl CreditAttribution: joelsteidl at Aten Design Group commented
Issue summary: | View changes |
Comment #12
joelsteidl CreditAttribution: joelsteidl at Aten Design Group commented
The 3.x version is just about ready for testing. https://git.drupalcode.org/project/zoomapi/-/tree/3.0.x
I will be working on documentation for converting from 2.x to 3.x.
Zoom has also made a lot of changes with Webhook validation that will become default in October 2023, so a lot of that is part of 3.x as well.
Comment #13
joelsteidl CreditAttribution: joelsteidl at Aten Design Group commented
We have a dev release up for 3.x!
composer require 'drupal/zoomapi:3.0.x-dev@dev'
Please take a look at the 2.x to 3.x documentation and let us know if you have any immediate questions.
We'll continue to work towards a stable release closer to June.
Comment #14
joelsteidl CreditAttribution: joelsteidl at Aten Design Group commented
Issue summary: | View changes | |
Status: | Active | » Needs review |
Thanks for all the work. For the record are post and deletes the same as post in such that it requires the json key in the options array?
Comment #16
joelsteidl CreditAttribution: joelsteidl at Aten Design Group commented
That should be the case. Guzzle will automatically format the JSON.
Let me know if that isn't the case.
Doing some testing and that is the case, thanks! :)
Comment #18
joelsteidl CreditAttribution: joelsteidl at Aten Design Group commented
@pixiekat Thanks so much for testing things out. I'm curious if you've had any issues so far.
I did discover one issue, actually. I was trying to put to the Update meeting status endpoint using the put() method and I received an 400 response: Request Body should be a valid JSON
I'm passing the meeting ID as the path and ['action' => 'end']
as the $option. I can't figure out why it's happening when it was working previously.
I don't think I'm missing a scope as I already have view and manage all user recordings active.
Oh, got it. It was a Guzzle configuration. For put() requests in Guzzle 6, you need to send ['json' => $data]
as your $option. For form data, you would send ['form_params' => $data]
.
Might be helpful to include in the documentation (not meaning that as a demand or to be rude or anything; I just think other people might be interested so they don't have to hunt). :)