In-Meeting Recording Controls API error

Description
I’m trying to test the new API endpoint for controlling in-meeting recording but I’m unexpectedly getting a permission error. My access token has the meeting:write scope as specified in the requirements and I’m trying to control a live meeting with cloud recording enabled. I additionally tested using the API request builder at the bottom of the docs page to ensure my request was well formed.

Error

$ curl --request PATCH \
  --url https://api.zoom.us/v2/live_meetings/9UHrjtlTR4S1qbzjHD8hzw\=\=/events \
  --header 'authorization: Bearer <snip>' \
  --header 'content-type: application/json' \
  --data '{"method":"recording.stop"}'

{"code":200,"message":"No permission."}

Which App Type (OAuth / Chatbot / JWT / Webhook)?
OAuth

Which Endpoint/s?


PATCH /live_meetings/{meetingId}/events

How To Reproduce (If applicable)
See error

Hey @shaneh

Thanks for posting on the Zoom Devforum! I am still learning, but I will try my best to help answer your question. :slightly_smiling_face:

Checkout this related thread that may have the answer you are looking for:

If this thread did not help, please let us know by replying back here and someone from the Developer Relations team will get back to you shortly.

Thanks,
DeveloperBot

nope, this is not the same issue

Hey @shaneh,

Has the user who owns the meeting installed your OAuth app?

Thanks,
Tommy

Yes, I was testing on my own account with a test OAuth app I created and installed

Thanks for the info @shaneh!

Our engineering team is looking into this issue. I will get back to you with updates. (ZOOM-190194)

Thanks,
Tommy

Hey @shaneh,

To use this API you need to also have the user:write scope or the OAuth user needs to be the meeting host/alternative host.

Try that and let me know if it works! :slight_smile:

We will add these additional prerequisites to the docs.

Thanks,
Tommy

Thanks for looking into it @tommy!

In this instance, however, the OAuth user was the host, and I was using a token with the user:write scope.

Hey @shaneh,

Thanks for the additional info. Are you still getting the same error?

Thanks,
Tommy

I just tried it again, and yes I’m getting the same error.

Hi, I’m getting a different error:

$ http -v patch https://api.zoom.us/v2/live_meetings/t4NGz+1nTZ63PQb1hOGSgw==/events meth
od=recording.start 'Authorization: Bearer XXX'

PATCH /v2/live_meetings/t4NGz+1nTZ63PQb1hOGSgw==/events HTTP/1.1
Accept: application/json, */*;q=0.5
Accept-Encoding: gzip, deflate
Authorization: Bearer XXX
Connection: keep-alive
Content-Length: 29
Content-Type: application/json
Host: api.zoom.us
User-Agent: HTTPie/2.2.0

{
    "method": "recording.start"
}

HTTP/1.1 415
Cache-Control: no-cache, no-store, must-revalidate, no-transform
Connection: keep-alive
Content-Length: 49
Content-Type: application/json;charset=UTF-8
Date: Tue, 01 Sep 2020 14:52:25 GMT
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Pragma: no-cache
Server: ZOOM
Set-Cookie: zm_aid=""; Domain=.zoom.us; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; Secure; HttpOnly
Set-Cookie: zm_haid=""; Domain=.zoom.us; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; Secure; HttpOnly
Set-Cookie: cred=B8057F8C3731B25FD4C3EE15F641DEA0; Path=/; Secure; HttpOnly
Set-Cookie: _zm_ctaid=""; Domain=.zoom.us; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; Secure; HttpOnly
Set-Cookie: _zm_chtaid=""; Domain=.zoom.us; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; Secure; HttpOnly
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-RateLimit-Category: Medium
x-zm-trackingid: WEB_28259c74cf60fd9b429f050eb2d1c3f0

{
    "code": 300,
    "message": "Unsupported Content Type"
}

We are getting the same error as @Ryan:

{

"endpoint": "https://api.zoom.us/v2/live_meetings/123456789/events",

"response_headers": [

"Set-Cookie: zm_aid=""; Domain=.zoom.us; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/; Secure; HttpOnly"

],

"date_time": "2020-09-02 21:32:32",

"method": "PATCH",

"request_body": "{"method":"recording.start"}",

"response": {

"code": 300,

"message": "Unsupported Content Type"

},

"request_headers": [

"accept-encoding: identity",

"accept: application/json",

"authorization: ******",

"connection: close",

"content-type: application/json"

],

"request_params": [

],

"http_status": "415"

}

@ryan @eric.franzen,

Have you tried the same payload using Postman or Curl to see if it works? The content-type application/json should work. If you’re still getting this error when using Postman or Curl, please let me know.

Thanks,
Will

@shaneh,

As a next step, can I kindly ask that you send us an email to developersupport@zoom.us with the following details:

  • The meeting ID of the meeting you’re testing with
  • The ID of the OAuth user or host/alternative host you’re testing with
  • A copy of your most recent payload that continues to fail

These details should help us to take a closer look at your specific acccount.

Thanks!
Will

Yup, curl, httpie, etc. See in my example above where we are setting Content-Type: application/json.

Hi Will,

Thanks for following up! I can confirm that the same issue occurs with Curl and all other implementations.

We did open a ticket (ID 7567453) last week with Zoom Developer Support, as the /live_meetings/{meetingId}/events API endpoint appears to be down. Last reply:

Thanks for bringing this to our notice. We were able to reproduce this issue, and are currently investigating the root cause.

@ryan @eric.franzen,

Our team has confirmed that this issue is something they’re working on fixing and it will be addressed in our next release. You can keep up to date with our releases in the Changelog.

Thanks,
Will

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.