Can't get meeting info from UUID (Meeting does not exist)

Description
I’m trying to create a zoom app that saves a list of everyone who attended a zoom meeting/webinar whenever that meeting/webinar ends. However, whenever I send the meeting UUID that I get from the webhook to this url and I get back an error message. Because I’m sure you’ll ask, I am double encoding the meeting UUID to escape problem characters like “/”.

Error
The full error message or issue you are running into.
(
[code] => 3001
[message] => Meeting does not exist: .
)

Which App Type (OAuth / Chatbot / JWT / Webhook)?
Knowing the endpoint/s can help us to identify your issue faster. Please link the ones you need help/have a question with.
Oauth2

Which Endpoint/s?
Knowing the API endpoint/s can help us to identify your issue faster. Please link the ones you need help/have a question with.
pastmeetingdetails

How To Reproduce (If applicable)
Steps to reproduce the behavior:

  1. Request URL / Headers (without credentials) / Body
  2. See error
    https://apps.coursevector.com/zoom/notification.php
    I might need help with part I’m fairly new to all of this and learning as I go.

Additional context
Add any other context about the problem here.
I know the meetings exist because they are literally being sent to my PHP file by the webhook that triggers when a meeting ends. I’m just not sure why it thinks it doesn’t.

Hi @CourseVector,

Thanks for reaching out about this.

The reason you’re getting this error is because this meeting only had 1 participant. Our /past_meetings endpoint unfortunately does not return results for meetings that had just 1 participant.

To retrieve details for a meeting with just 1 participant, the supported endpoint is this one:

You will need to use the type=pastOne query parameter as well.

Thanks,
Will

Oh thanks so much! I’ll try this out and if I still need help I’ll get back to you shortly.

Okay I hosted another meeting and had someone join and I’m still getting the same error:
{“code”:3001,“message”:“Meeting does not exist:[MEETING UUID].”}
This time there were two participants. Got any other ideas? I appreciate the input.

Hi @CourseVector ,

I redacting your meeting uuid for security reasons, but since it contains a slash, please try double encoding it (pasting here and encoding TWICE), and then using that value to retrieve past meeting details or participants.

Please see this thread for more details about this error and workflow: Can't retrieve data when Meeting UUID contains double slash ("//") - #13 by tommy

Let us know if that helps,
Gianni

Gianni, Does that mean I need to literally use url_encode twice?
Here’s what I currently have in the code.

$meeting_id = $json_data->payload->object->uuid;
$meeting_id = urlencode($meeting_id);

I’ve tried it with a single urlencode and ive tried using that line twice like this

$meeting_id = urlencode(urlencode($meeting_id));

Which one is correct? Or maybe they are both wrong? Like I said I’ve tried but neither work, even if there is no / or // in the UUID.

@CourseVector paste the original uuid in URL encode and hit encode. Then, copy that result into the encode box once more and hit the encode button again. This latest value is your double-encoded uuid and is what you should use to retrieve past meeting data from the API :slight_smile:

Cool so we are on the same page! Thanks for replying so quickly! Unfortunately, that means I am double encoding it right, and we must have a different issue. :frowning: any other ideas?

@CourseVector what happens when you double encode manually using the url encoder site and make a request to that API endpoint? Are you still seeing the same challenge as with trying to do it programmatically? Can you please share screenshots of your approach?

Thanks,
Gianni

@gianni.zoom I tried that and it is the same result. I can share screenshots yes, but what do you want to see? Here’s my get participants function


This is after I ran the double encode through urlencode website as you requested. It yields the same result as my code.

Hi @CourseVector , no worries! I was asking for screenshots of the GET request and response body after double encoding to see exactly what you’re getting back from the API.

I withheld all the UUIDs so you didn’t have to delete the picture :slight_smile:

Thanks @CourseVector – what I’ve seen before that caused this is the code logic still sending the un-encoded uuid in the request URL which is why you saw the unencoded uuid in the code:3001 message response describing that meeting as not existing.

Additionally, were you the host of the 1-person attended meeting and were you the person that attended?

Gianni

@gianni.zoom The meeting UUID I’m using had 2 participants. And I’m hard coding the double encoding UUID into the code here, so I’m sure it’s correct there. Here’s an example of my error log without completely ommitting, I printed out the double encoded result, and then you can see that it is feeding the whole way through. It’s definitely not sending the unencoded one.

[24-Aug-2021 09:25:07 America/New_York] Raw response from /v2/past_meetings/3Jovsu%252xxx/participants
[24-Aug-2021 09:25:07 America/New_York] {“code”:3001,“message”:“Meeting does not exist: 3Jovsu/dTxxx”}
[24-Aug-2021 09:25:07 America/New_York] JSON from /v2/past_meetings/3Jovsu%25xxx/participants
[24-Aug-2021 09:25:07 America/New_York] stdClass Object
(
[code] => 3001
[message] => Meeting does not exist: 3Jovsu/dTxxx.
)

You can see that the / is encoded out in the first error log and the second one, and the third one it replies meeting does not exist and it has the “/” present.

Hey, nevermind I actually got everything sorted now. Thanks so much for all your help!

Happy it’s working now @CourseVector ! Do you care to share how you solved for other members of the community who may be encountering a similar issue?