Meetup.com integration module - help shape it - round 1

Events happening in the community are now at Drupal community events on www.drupal.org.
wizonesolutions's picture

Hi all,

This is probably the first post on g.d.o I've actually started! I saw a lot of people using it to collect and organize module-related ideas and figured I would too. So here's the deal.

I am the author of Meetup API and want to develop a separate Meetup module, based on Meetup API of course, that will provide integration with existing popular modules and give site builders some ability to integrate Meetup.com data into their sites without having to write a custom module. The target user audience of this module wouldn't really be end users. It would be site builders who know how to configure blocks, Views, Rules, etc. So my initial thoughts are that the module would provide integration with popular modules like this.

For example, using Views integration, it would be possible to create a table of upcoming Meetup events. Rules could RSVP a user automatically on Meetup.com when they RSVP'ed on the local site, or cross-post a comment they made, etc. They could perhaps use an input filter to put content in blocks, or some basic blocks could be provided if they were of general interest (like next X events for Y group, perhaps with the ability to create multiple of these blocks).

Some discussion on this has happened. There does seem to be interest in being able to create a block and definitely in RSVP integration. There is a thread that gives some ideas over at: http://www.meetup.com/boards/thread/9424495. I will also post a light spec that I drew up as the first comment, along with the link to the roadmap wiki I'm going to create.

What is the goal of this discussion? To determine which features are the most important for this module, to prioritize them and divide them into pretend releases, and to just get some formal communication going on this!

I also want to find out who would be interested in helping and contributing code or documentation (e.g. handbook pages as features develop). UI/theme stuff may or may not be needed as well, but for now that falls under code.

Let the quest for a Meetup module begin!

Comments

OK, here's the spec I drew

wizonesolutions's picture

OK, here's the spec I drew up. This is for a sort of pilot project on a local community site. Either that project or this discussion will most likely be the birthplace of the Meetup.com module :)

Using the Meetup API module, pull in information from Meetup.com about upcoming Meetups.

v1 goal: On [snip], show "Events from Meetup.com" under [snip] Links to the events will go to Meetup.com.

More tweaks will probably follow shortly after, but this will give people something to look at and provide a base for suggesting improvements.

[snip] It's actually probably the most feasible implementation - a module that provides fields to be used in custom views - then people can make their own blocks and display Meetup.com data however they like. This would actually be useful.

Things to think about:

* caching - how long, or leave it up to the user, or to views, etc.? performance in general
* query/option validation to avoid unnecessary API limit usage
* [snip] needing its own API key eventually - will talk to Meetup dev support, they know me
* operation under error conditions, e.g. limit reached, API not responding, etc. (v1-ish goal will be to use previously retrieved information and bail before any new (or rather, no real) data is returned.

[snip]

Hmm, in re-reading this I realize that there is more to think about...do I really want to go with the straight Views approach, where I would probably have to make "Meetup Event" a first-class object...or should I make it a node module to start, perhaps ones that pulls in events according to some configuration settings on cron? Then I would only need to implement that node's fields in Views...which might be just as involved.

This calls for a bit of research, so I'm going to see if there are any other event APIs (maybe in http://drupal.org/project/fb) and how they choose to implement user-consumable functionality, if they do. Otherwise...maybe I'll wind up charting new-ish ground. I've never dealt with Views enhancements that actually resulted in API calls...generally Views are for dealing with data that already exists. So then it seems as if I would need a DB table and an implementation of hook_cron, at least. Perhaps a simple DB table (or several) though (rather than a node module) and Views integration will be the best place to start...yeah, I think that's what I'll do. I might be able to piggyback off the Data module to manage the table...will have to check it to see if it's meant to be used with contributed modules. The Meetup module really will be pulling "data" so it could be an interesting dependency there. Only concern is if Data will make it to D7 or not and what kind of rewrite that might entail...but I don't really care yet. Once this is out there, I'm sure it'll get feedback that'll help with (re)design decisions.

And here is the link to the roadmap-in-progress.

WizOne Solutions - https://wizone.solutions - Drupal module development, theme implementation, and more
FillPDF Service - https://fillpdf.io - Hosted solution for FillPDF

Good idea. I like to make a

Jurjen de Vries's picture

Good idea. I like to make a connection between meetup.com and the Drupal Organic Groups event list I used at http://www.fiberfriday.org
Auto creation of the event at meetup.com and an overview of signups would be nice.

@Jurjen de Vries: Great,

wizonesolutions's picture

@Jurjen de Vries: Great, thanks for contributing an example of how this could be used once developed.

I have been trying to coordinate an installation profile to provide some of this functionality as well, so really there's many ways it could happen, but it probably won't till I have time (not soon...) or someone has the need and just does it or gets it done.

Let me know what you think.

WizOne Solutions - https://wizone.solutions - Drupal module development, theme implementation, and more
FillPDF Service - https://fillpdf.io - Hosted solution for FillPDF

Don't forget there's COD

greggmarshall's picture

While I like the idea for a simple meetup option, there's active development on the Conference Organizing Distribution for something more complex. I'd hate to see duplicated efforts...

Hi Gregg, We meet again :) Is

wizonesolutions's picture

Hi Gregg,

We meet again :)

Is there really? Can you point me to a more specific thread? I contacted Ezra, but I have not received a reply. If I cannot get in touch with those doing the devleopment, it will be hard to combine efforts.

In any case, this is more to do with the Meetup module, which would be needed anyway and which I still intend to create. Don't confuse this with the installation profile initiative. So if you could actually post info about active development already happening to the wiki I linked in my previous comment, that would be highly appreciated.

WizOne Solutions - https://wizone.solutions - Drupal module development, theme implementation, and more
FillPDF Service - https://fillpdf.io - Hosted solution for FillPDF

issue queue?

greggles's picture

Is there really? Can you point me to a more specific thread? I contacted Ezra, but I have not received a reply. If I cannot get in touch with those doing the devleopment, it will be hard to combine efforts.

We do (nearly) all coordination via the public issue queue, so if you post there it should get a response.

What kind of question/response were you looking for?

Ah, I will have to dig it up,

wizonesolutions's picture

Ah, I will have to dig it up, but basically wondering if a "Meetup installation profile" would fit into the goal of COD. It seems that COD is useful for things like ddcla.org, sandcamp.org, etc. where the conference has fixed start and end dates. But are there plans to make it work for groups like LA Drupal that meet monthly, for example? And are there plans to integrate COD with third-party event coordination services such as Meetup.com? Those were my main questions. It seemed like it might be too specific a need to have a place in COD, but I might be wrong. I will check out the issue queue when I can. Thanks for getting in touch!

WizOne Solutions - https://wizone.solutions - Drupal module development, theme implementation, and more
FillPDF Service - https://fillpdf.io - Hosted solution for FillPDF

multiple events, repeated events,

greggles's picture

Yeah, I think it's within scope. Building a "meetup-like tool" is basically about

  • OG (or similar)
  • Multiple events
  • Repeated events

I think that's in the scope of COD after 1.0. For 1.0 we're trying to focus on a fixed event like you describe, but for after that it could be fine.

I know what you mean. I guess

wizonesolutions's picture

I know what you mean. I guess (as I replied to greggmarshall) that the difference is that besides the Meetup-like functions Drupal-side, we're also going for the third-party integration angle...and that's where I'm not sure how much it fits in. Can installation profiles have dependencies? It seems like a lot of things would be re-usable, but somehow we'd need to slap Meetup integration functionality on top of it.

WizOne Solutions - https://wizone.solutions - Drupal module development, theme implementation, and more
FillPDF Service - https://fillpdf.io - Hosted solution for FillPDF

Module yes, but another distribution?

greggmarshall's picture

I actually like the idea for the Meetup integration module. I can see lots of uses for it, especially for smaller meetings and conferences.

What had me worried was the one example site on the wiki you linked to looked a whole lot more like a conference, until I actually drilled down a couple of layers to realize what the events were after reading your reply. Maybe I'm not clear on what functionality you are envisioning for your distribution.

As for a pointer to "a more active thread", take a look at COD Roadmap.

Hi greggmarshall, I checked

wizonesolutions's picture

Hi greggmarshall,

I checked the roadmap, and third-party integration isn't on it. This would be an installation profile whose primary "selling point," on the other hand, would be integration with Meetup.com. I hesitate to call it a distribution because I don't intend to modify any core files - it'd be more on the level of OpenAtrium which packages themes, modules, and settings with its install profile.

I think things will get clearer as I start having a dialogue with the COD maintainers, and the best way forward will be clearer from there.

WizOne Solutions - https://wizone.solutions - Drupal module development, theme implementation, and more
FillPDF Service - https://fillpdf.io - Hosted solution for FillPDF

Sending Drupal events to Meetup.com

a1tsal's picture

I'd like to do the reverse -- sending events from a Drupal-based event management system to a meetup.com meetup.

Their API supports this, so it's clearly possible in principle. I'm not planning to hack this for a few months, but I'll let you know when/if I do. If anyone else is working on this, let me know...

If you still have the need,

wizonesolutions's picture

If you still have the need, somebody did this: http://drupal.org/project/meetup_events

WizOne Solutions - https://wizone.solutions - Drupal module development, theme implementation, and more
FillPDF Service - https://fillpdf.io - Hosted solution for FillPDF

Hey @a1tsal, Awesome! Thanks

wizonesolutions's picture

Hey @a1tsal,

Awesome! Thanks for writing about your plans here! If you want to fork the PHP Meetup API Client from GitHub and then submit a pull request, I'd be happy to look at your code (whenever you get around to it). The client is at https://github.com/wizonesolutions/meetup_api

The Meetup API Drupal module would also benefit from being updated with any write methods you code. http://drupal.org/project/meetup_api - start by creating an issue and submitting a patch (preferably with testing instructions...or even tests, if you're into that. I wish I was).

I also started a Sandbox for a Meetup module, so if you do anything that is more implementation than API, that might be a good place to contribute some re-usable functionality that people could need. It is at: http://drupal.org/sandbox/wizonesolutions/1073008 - whenever you've got something, again, open an issue and submit a patch. After that, on that one I'd be happy to make you a co-maintainer if you want...

Good luck. If I change anything of note, I'll post back here. The original reason I made the Meetup API Client and friends has sorta disappeared, so I dunno how quickly I'll keep working on it without an itch to scratch, but perhaps my interest will be renewed in another way soon. It is an interesting project for sure.

WizOne Solutions - https://wizone.solutions - Drupal module development, theme implementation, and more
FillPDF Service - https://fillpdf.io - Hosted solution for FillPDF

Very interesting

robbm's picture

All sounds very interesting. Has there been much progress since?

I've previously pulled Meetup events into Drupal using Feeds, but it would be great if people could RSVP without having to redirect them to Meetup.com.

I've abandoned this

wizonesolutions's picture

I've abandoned this completely and haven't had much need for it for the time being. Another developer started maintaining the GitHub library and Drupal module, though, and I think there are probably other options out there now too, at least for some stuff.

WizOne Solutions - https://wizone.solutions - Drupal module development, theme implementation, and more
FillPDF Service - https://fillpdf.io - Hosted solution for FillPDF

Event Management Systems

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: