Access token is required error when downloading transcript

contact_center.recording_transcript_completed

I would like to get a copy of any transcript. I have created a server-to-server app that calls to a webhook with the contact_center.recording_transcript_completed event.

I have successfully validated the webhook and I am receiving events. One of the items returned is

transcript_url

string

The URL to download the recording transcript file.

If a user has authorized and installed your OAuth app containing contact center recording scopes, use the user’s OAuth access token to download the file, and set the access_token as a Bearer token in the Authorization header.

curl -H 'Authorization: Bearer ' https://{{base-domain}}/rec/archive/download/xyz

I want to download this url.

I have followed the instructions here - Server-to-Server OAuth to get a Authorization token for a server to server app.

When I attempt to download with the curl above… I get the following error:

code 124
message Access token is required.

Here is a sample of the request I am making (xyz replaces transcript url and auth token):

[
    {
        "ca": null,
        "qs": [],
        "url": "https://www.zoom.us/v2/contact_center/recording/transcripts/download/xyz?type=voice",
        "gzip": true,
        "method": "get",
        "headers": [
            {
                "name": "Authorization",
                "value": "xyz"
            }
        ],
        "timeout": null,
        "useMtls": false,
        "authPass": null,
        "authUser": null,
        "bodyType": null,
        "serializeUrl": false,
        "shareCookies": false,
        "parseResponse": true,
        "followRedirect": true,
        "useQuerystring": false,
        "followAllRedirects": false,
        "rejectUnauthorized": true
    }
]

Is there a way to get more information about what is happening and how to resolve?

@chadhill ,

Thank you for posting this on the Zoom Developer Forum. There’s a great question, is this user assigned to your account? If they’re not, you’d likely want to use an OAuth app marketplace app to obtain their access token, as opposed to using a Server-to-server.

Yes. I’m an admin on the account and I created the server-to-server app.

@chadhill ,

Is this user assigned to your account?

Correct. Admin on the account that created the server-to-server app and that account is also where I want to download a transcript. Is it better to open a ticket on this to speed up the back and forth?

It would be great to have some way for me to verify the token I’ve created and also make sure that the spec you provided in the docs is working for others?

Should the url include the ?type=voice ?

Hi @chadhill ,

See below:

@donte.zoom FYI (DEVELOPERS-3922), (ZSEE-92020). Seems like some of the webhook documentation did not get corrected.

1 Like

@gianni.zoom not sure this is quite right. The webhook for video recordings includes a download token but the webhook for contact_center.recording_transcript_completed does not include a download token and I’m trying to download a transcript from zoom contact center not a recording for a zoom meeting. Are you saying use the zoom meeting api to download a zoom contact center transcript?

Hi @chadhill , transcript is a type of recording and I believe the behavior is the same–that the OAuth tokens are not supported for use within the webhooks at this time. The language in the documentation you shared is the same that was previously available for meeting webhooks. I believe this is an oversight and I’ve reached out to the relevant teams for clarification.

In the interim, please use Contact Center API