Extend your community

Long-Polling Photo Stream

GET /2/photos
  • json
Host: stream.meetup.com
  • public
stream version 1

This long-polling stream can be easily consumed using JavaScript in any modern browser. Photo upload notifications are received when they happen, or as soon as your script finishes handling its last notification.

Request Parameters

These parameters are set automatically by Meetup's must.js client.

callback

Name of a function to be called with an array of photo notification objects. If this parameter is not supplied, the chunked stream is joined instead.

event_id

Limit notifications to a specific event id. Use alphanumeric ids for repeating events.

since_count

Request that some number of recent messages be sent immediately, if available. May not be specified in the same request as since_mtime.

since_mtime

Should be supplied for all but the first polling request, so that any missed notifications are can be sent in an immediate response

Response

Photo upload notification objects include these properties. This method's response is an array of zero or more of these, while Meetup's JS client calls your callback function with exactly one object.

caption

Photo caption if available

ctime

Created time in millisseconds since the epoch

highres_link

URL for the original sized photo

member

Member that uploaded the photo

member_id

ID of the member

name

Name of the member

mtime

Last updated time in milliseconds since the epoch

photo_album

Photo album this photo belongs to

event

Event, when available, associated with the photo album

id

ID of the event

name

Name of event

group

Group associated with photo album

city

Group city

country

Group country code

group_lat

Group latitude

group_lon

Group longitude

group_topics

Topics associated with this group

id

ID of group

join_mode

"open", "approval", or "closed"

name

Name of group

state

If in the US, the state of the group

urlname

Unique portion of group's URL, no slashes

photo_album_id

ID for the photo album

photo_id

ID of the photo

photo_link

URL for the standard sized photo

thumb_link

URL for the thumbail sized photo

Errors

connection_limit

the client IP has exceeded its maximum number of connections

Examples

Install the Meetup stream client with bower

$ bower install must

The HTML page below is empty until photos are inserted from the stream.

<html>
  <head>
    <script src="components/jquery/jquery.min.js"></script>
    <script src="components/must/must.js"></script>
    <script>
      must.Photos(function(photo) {
        $('#photos').prepend(
          '<img src="' + photo.photo_link + '"/>'
        );
      });
    </script>
  </head>
  <body>
    <div id="photos" />
  </body>
</html>

See picturethis in our stream github project for a more advanced example.

WebSocket Photo Stream

WS /2/photos
  • json
Host: stream.meetup.com
  • public
stream version 1

For browsers that support it, WebSockets is a more efficient alternative to the long-polling stream. This is a push only endpoint and will discard any messages received from the client after the socket is open.

Because browser support for WebSockets is limited, we recommend that you consume this stream through the must.js client, which can fallback to long-polling.

Request Parameters

The full url for this method is ws://stream.meetup.com/2/photos

since_count

Request that some number of recent messages be sent immediately, if available. May not be specified in the same request as since_mtime.

since_mtime

Return recent photos with an mtime greater then the supplied time, in millisends since the epoch

Response

This stream includes the same JSON notification objects as its long-polling counterpart, one per WebSocket frame.

Errors

connection_limit

the client IP has exceeded its maximum number of connections

Examples

The long-polling stream examples will automatically use WebSockets, if available.

Chunked HTTP Photo Stream

GET /2/photos
  • json
Host: stream.meetup.com
  • public
stream version 1

This method serves photo notifications using chunked encoding to maintian a persistent connection with a client. The connection will only be terminiated for server maintenance or a connection error. It is suitable for low-level HTTP clients rather than web browsers.

Request Parameters

since_count

Request that some number of recent messages be sent immediately, if available. May not be specified in the same request as since_mtime.

since_mtime

Return recent photos with an mtime greater then the supplied time, in millisends since the epoch

Response

This stream includes the same JSON notification objects as its long-polling counterpart. These are served one per HTTP chunk and terminated by newlines.

Errors

connection_limit

the client IP has exceeded its maximum number of connections

Examples

Try out the photo stream on the command line

curl -i http://stream.meetup.com/2/photos

API methods