Mission
- The goal of the Drupal Social Initiative (Social API) is to harmonise Social Networking functionality in Drupal; provide more functionality to end-users; provide easier site creation and configuration to site administrators and developers; and enable easier module maintenance for developers.
- Add more ideas...
Objectives
- Provide a common interface to access common functions across multiple social networks. Making it easier for:
- Developers to create and maintain social network integration modules.
- Site builders to utilise social network integration modules that harmoniously work together.
- Users to access social networks functionality.
- Let's work on clarifying these objectives over the next few weeks leading up to the Abstracting Social Networking functionality in Drupal sprint.
- There are numerous modules for Drupal social networking integration.
- Connecting with other networks
- Pulling in content
- Pushing out content
- What else?
Components
- HTML data (meta tags / microdata / opengraph / facebook)
- identity / authentication
- importing data - relationships / likes
- storage in Entities - User relationships / Flag
- exernal db
- posting
- direct
- user fulfilled
- elements on page, e.g. facebook likes
- Social network apps
- building social networking function directly in Drupal
User/Developer Stories
- Add your personal stories (as an end-user, site administrator or developer) as to what you want to see happen in the Drupal Social Initiative. Also, how do we want to interact/integrate with external social networks?
- j0rd: for each site I make, unfortunately clients always want social shares. My problem is any third party plugin embed can/will destroy front end performance. What I need is an addthis type JavaScript to embed the 3rd party shares with best front end performance and ideally have a nice drupal back end to deal with the Meta title / description / image / movie headers.
- dahacouk: Social Media Dashboard – Aggregate all my activity and my friends' activity from all my social networks into one dashboard where I can configure the display of that information.
- Download friends' lists
- Posting/sharing to pages in external social networks
- Sharing external services: As a user I would like to be able to easily send content from within the site to external services, such as Twitter, Facebook, Delicious which was born out of the BuddyPress or Ning : Community/Social Networking Website toward a fully functional prepackaged product / SAS based on Drupal / let's works on that at DrupalCon SF conversation.
- dahacouk: Import Facebook groups wholesale into Drupal?
- [AIGAIJ] Strong consideration for how to handle internal corporate and/or protected social networks. Corporate initiatives may leverage drupal to cross the inside-outside social experience and include interface to other platforms. Educational organizations may do much the same, with similar requirements for privacy and protection of content, users, and systems. Target state may be a separate stack within the DSI diagram to afford for these types of integration.
- What else?...
Future directions (need to add website links)
- Federated social networking
- WebID
- OStatus
- PubSubHubbub
- OpenSocial
- Portable Contacts
- What else?
Collaborative tools
- This wiki page.
- IRC: irc://irc.freenode.net/#kendraio
- ...?
Things to do
- Contact module developers in a couple of weeks when we've honed the Drupal Social Initiative plan?
Code review
- We should be able to abstract these into a social networking API
- OAuth for authorisation
- Pluggable layer for
- Notifications
- Pulling in and using content
- Posting to other networks
- What else?
Playing nice
- We need to play nice with current social network integration modules and work with maintainers to decide how we can best abstract functionality for common tasks.
Leveraging existing work (need to add more modules)
- Table of (all?) Drupal 7 (or soon to be) social networking modules with their maintainers so we can get an idea of module functionality and easily contact their maintainers.
Realm (network, protocol or area) API | Module name | Maintainer names | Drupal version | Date maintainers contacted | Comments |
---|---|---|---|---|---|
Social network | --- | --- | --- | --- | --- |
- | Social media | TomDude48 | 7 | - | - |
Facebook social plugins integration | ferdi | - | 2012-06-10 | - | |
Drupal for Facebook | Dave Cohen | - | 2012-06-10 | - | |
Facebook Connect | vectoroc, jcisio | - | 2012-06-10 | - | |
FBOauth | quicksketch | - | 2012-06-10 | - | |
Facebook Like Button | jerdiggity | 6, 7 | - | - | |
Google+ | Google+ | rszrama | - | - | - |
Google+ | Google +1 Plus One and Badge | corbacho | - | - | - |
juampy | - | 2012-06-10 | - | ||
Twitter Block | ZenDoodles | - | - | - | |
Twitter Timeline | mrfelton | 7 | - | Uses Bean module | |
Tweet | IceCreamYou | 7 | - | - | |
YouTube | Youtube API | beeradb, aaron | 6 | 2012-06-10 | Seems stalled? |
LinkedIn Integration | bellesmanieres | 7.x-1.x-dev | - | - | |
Gravatar | Gravatar integration | Narno | 6, 7 | - | - |
- | Follow | q0rban | 6, 7 | - | - |
Authentication | --- | --- | --- | --- | --- |
OAuth | Connector | voxpelli, Frans | - | 2012-06-10 | - |
OAuth | OAuth | juampy | - | 2012-06-10 | - |
OAuth | OAuth API | Sylvain Lecoy | - | 2012-05-28 | - |
Mozilla Persona | Mozilla Persona | donutdan4114 | 7 | - | - |
Semantic Publishing | --- | --- | --- | --- | --- |
schema.org (Google+) | Microdata | linclark | 7 | - | - |
Open Graph (Facebook) / Twitter Cards | meta tags | Dave Reid | 7 | - | - |
Open Graph | Open Graph meta tags | hiddentao | 6, 7 | - | - |
Open Graph | Opengraph Filter | Frans | 7 | - | - |
Internal | --- | --- | --- | --- | --- |
Drupal | Service links | TheCrow | - | 2012-08-22 | - |
Drupal | Social Share | willvincent | - | - | - |
Drupal | User Relationships | berdir | - | 2012-06-10 | - |
Drupal | Flag Friend | sirkitree | - | 2012-06-10 | - |
Drupal | User Relationship Locator | mrf | - | 2012-05-24 | mrf wants IRC during sprint |
Drupal | Heartbeat | Stalski | - | 2012-06-10 | - |
Drupal | Statuses | icecreamyou | - | 2012-06-10 | - |
Drupal | Invite | smk-ka | - | 2012-06-10 | - |
Drupal | Private Message | berdir | - | 2012-06-10 | - |
Drupal | Message | Amitaibu | 7 | - | - |
History
- This page started as the Abstracting Social Networking functionality in Drupal sprint and Abstracting Social Networking functionality in Drupal event
- We had some BoFs at DrupalCon Munich too.
Posted to
- http://groups.drupal.org/social-initiative
- http://groups.drupal.org/social-networking-sites
- http://groups.drupal.org/federated-social-web
- http://groups.drupal.org/facebook-api
- http://groups.drupal.org/google-plus
- http://groups.drupal.org/kendraio
- http://groups.drupal.org/semantic-web
- Choice between fbconnect and fboauth
- Where else should we post?
Attachment | Size |
---|---|
abstracting-social-networking-functionality-in-drupal-stack-2.png | 60.68 KB |
Drupal_Social_Initiative_Social_API_Stack.png | 104.19 KB |
social-stack-sun-barcelona-june-2012.jpg | 88.26 KB |
Comments
I added OAuth API module and
I added OAuth API module and I think you may be interested for your initiative. It mainly differs from the OAuth module because it is extensible, you can choose the low level library (PECL OAuth, PHP OAuth, whatever...) and the system uses Drupal Entities called 'Application'.
Each application has an ID, and the authmap is re-written to handle multiple applications per user. So you have a key(oid, uid) with oid the OAuth Application ID.
I made the choice of not contributing to the OAuth module because they rejected my proposition of extends the module to support native PECL library. Also, the core drupal authmap is not really usable and this modules corrected the architecturing problem reported here (http://drupal.org/node/817118, and http://drupal.org/node/920908).
Abstraction of core and contribs
HI all,
As maintainer of heartbeat, I suffered in d6 because I had to get integration myself for any modules "I could think of" in heartbeat. E.g. all friends modules(flag_friend, UR, friendslist), the modules who split up content by access (Organic groups), shoutmodules (statusses/fbss, shoutbox).
I tried to abstract the way I needed to "know" things from those other modules.
I came up with API framework which ended up by calling something like:
APIFramework::getInstance()->invoke("get_friends", $userA)
I did not persist since all maintainers would need to have some integration in their modules. In my opinion this could only be good since important methods are abstracted in the modules. In technical words, were APIframework only delegates the question to the module who can leverage the answer and where the invoker does need to know who's giving the answer.
Since core initiatives where already trying to add context to drupal and have some abstraction, I stopped looking at it. It seemed as people where not that interested (some exceptions).
So, dunno, check that old code and see if my thoughts can help you. I am also here if you need me :)
That might be skipped in general depending on how the invocation methods are stored.
Some questions, thoughts.
When I look at the image posted (abstracting-social-networking-functionality-in-drupal-stack-2.png), I think the top layers are upside down. Right?
To be clear, is the problem that social network modules need a layer on top of drupal core to make integration easier? If so, that "layer" should be baked into drupal core - for easier integration by any module, social network or not.
Or is the problem that third party/custom modules need a layer to make social network integration easier? That is, an API that says "get this user's friends" without caring whether the user's account is linked to twitter, facebook or google+ (or... all three). I think this is what you're talking about here, which I would draw as a layer on top of the facebook, twitter, google+ modules.
Also that image shows "AAA Abstraction", which I'm not sure what that stands for.
I think that no matter how much work is put into an abstaction layer, there will always be things that are so specific to one social network or another that custom modules should always be able to access the underlying APIs. It would be a mistake to prevent a module from directly making say an FQL query to facebook because the abstraction layer provides something similar.
Here are some things that I suspect are facebook-specific, although I'm not expert in all the platforms.
Also to think about...
Any abstraction layer should have a PHP (server side) component and also Javascript (client side) component.
It's possible to be connected to facebook and be anonymous to drupal. Bad idea to build in an assumption that a user connected to a social network is always registered on drupal.
Some social network integration is user-level, i.e. the current user is right now connected to facebook. Other integration is admin-level, i.e. the administrator generated a token that allows new content to be published to facebook fan page (even when the current user is not connected to facebook).
The facebook platform is sprawling and always changing. It's been really difficult to keep up (i.e. Drupal for Facebook is chronically lagging behind). And it seems to grow whenever a big customer of theirs needs something new. You simply won't contain everything in an abstaction layer. This layer should choose what is common enough to all social networks, or just what most drupal sites need, and focus there.
I'm not just trying to say this shouldn't be done. I think an abstraction layer could work great for a lot of uses. I totally get it. I just think there will always, at least for facebook, be things the platform can do that the abstraction layer would not. As for Drupal for Facebook, if there's a set of APIs it should implement to make the abstraction layer possible, then great! I'd be happy to help. (Especially if that help is to review a patch that already does it all. :)
Also I'm insanely jealous. I can't think of a better place than Barcelona to discuss this!
Baby steps
I suggest to go in little steps. Mainly because of the following:
At Barcelona we could build a list of candidate features that could be grouped between social networking modules.
Senior Developer at Lullabot
https://www.lullabot.com/who-we-are/juampy-nr
Organic Group could be used
Organic Group could be used to build Google+ Circles (instead of boring friendlists) and also FB like Fanpages or simply user groups...?
Rough notes from sprint
After a hearty lunch of sea food paella we got down to the sprint. Present for the first few hours were carsato, chia, dahacouk, juampy, klokie and plopesc. With jbrown making a serendipitous surprise visit at the end of the day.
Here are rough notes from that paella fuelled session. We'll need to move some of the salient points to the wiki page to keep it up to date.
A virgin Social API module has been set up on d.o. We'll be able to add other maintainers when darrenmothersele gets back online next week.
social_api_*
? For instance would our abstracted Twitter layer besocial_api_twitter
? Or would that create names that are too long? If so do we want to rethink naming?Hooks for:
Menu: Profile > Social networking settings
More specifically, we (eventually) want to cater for functions:
Next I'll upload the drawings we made...
Social BoF for DrupalCon Munich 2012
I have set up a BoF for DrupalCon Munich 2012 called Drupal Social Initiative (Social API) to see if that will tweak some interest. It's just serving as a placeholder for the moment for us to coordinate efforts and times and places – as the time is wrong as it's during Dries' keynote!
Look at singly.com?
We should look at https://singly.com/docs/api for pointers.
If this then that?
We should also look at http://ifttt.com for ideas on perhaps where we should be able to go with Drupal. Using Rules to it all together?
Scheduling BoFs in Munich!
A bit crazy to try and schedule a time for us all to meet so I've made the following bookings with a hope that we'll be able to meet at some point!
Room: Rom
Time slot: Tuesday 17:00-18:00
http://munich2012.drupal.org/content/drupal-social-initiative-social-api-0
Room: Montreal
Time slot: Wednesday 11:45-13:00 – Lunch!
http://munich2012.drupal.org/content/drupal-social-initiative-social-api-1
Room: Montreal
Time slot: Thursday 11:45-13:00 – Lunch!
http://munich2012.drupal.org/content/drupal-social-initiative-social-api-2
Hope to see some of you at some point.
tomorrow lunch
I can do tomorrow's lunch. I suggest to do it downstairs at the coder lounge, where we can sit to eat.
Senior Developer at Lullabot
https://www.lullabot.com/who-we-are/juampy-nr
Wednesday lunch! Done! But please Montreal for venue...
Great! Wednesday lunch! Done! But please can we use the Montreal room for the venue? We can take our lunch into the BoF room. I just checked it's a lovely room with tables and space for a nice group. Thanks!
Agree
OK
Senior Developer at Lullabot
https://www.lullabot.com/who-we-are/juampy-nr
Munich BoF: Social Initiative (Social API)
If you are planning to come to either of the Drupal Social Initiative (Social API) lunchtime BoFs then please come at 11:45 with your lunch in hand or get your lunch later when the queues have gone down. There's loads of food and it wont run out. The BoF will be held at the Montreal room which is really easy to get to on the "first floor" map.
Room: Montreal
Time slot: Wednesday 11:45-13:00 – Lunch!
http://munich2012.drupal.org/content/drupal-social-initiative-social-api-1
Room: Montreal
Time slot: Thursday 11:45-13:00 – Lunch!
http://munich2012.drupal.org/content/drupal-social-initiative-social-api-2
If you are interested but can't make it then please take a look and comment at:
http://groups.drupal.org/node/232878
Lots of great ideas came out of the BoF yesterday with pdjohnson, Marc Blumenfrucht, jbrown and I. I'll detail this shortly.
Hope to see some of you at some point.
Cheers Daniel
Tuesday's Drupal Social Initiative BoF at DrupalCon Munich
The Drupal Social Initiative BoF at DrupalCon Munich at 17:00 on Tuesday 21st August was attended by pdjohnson, realitygaps, jbrown and dahacouk. Here's some ideas and action points that came up:
pdjohnson and realitygaps may be able to get hold of code and/or developer time to assist Drupal Social Initiative to meet its goals.
dahacouk added "User/Developer Stories" to the wiki page. And needs to look at how other Drupal Initiatives are structured in terms of collaboration tools. And discuss/network with horncologne aka jam.
We need to create a big plan with milestones. General agreement on being pragmatic and work on quick short term wins while keeping the larger goals in mind. Aim to start promoting plan to larger community mid September. So we have some writing to do!
Wednesday's Drupal Social Initiative BoF at DrupalCon Munich
The Drupal Social Initiative BoF at DrupalCon Munich at 11:45 on Wednesday 22nd August was attended by russellb, mkostrzewa, audreyletiec, dahacouk, juampy and klokie.
We talked about...
We want to "get off" (remove our dependency ;-) from external services like AddThis.
russellb suggested we need an "add this" button that is just internally serviced by the Drupal website rather than using the AddThis service. Perhaps Service links is the one way to do this? TheCrow has been contacted.
Setting up Social Network API Teams that maintain the APIs for a given Social Network so that effort can shared. Like:
* Facebook API Team
* Twitter API Team – juampy says that he has already abstracted out the Twitter API from his Twitter module and placed this on GitHub.
* LinkedIn API Team
* Google API Team
Thursday's Drupal Social Initiative BoF at DrupalCon Munich
The Drupal Social Initiative BoF at DrupalCon Munich at 11:45 on Thursday 23rd August was attended by j0rd, guy_schneerson, iAugur, klokie, jbrown and dahacouk.
There seemed to be general consensus on the following ideas:
thumbs up.....requirments
I like the way you guys thinking.... :D
http://www.propertysimplified.in/
Sun's diagram for the social stack
At Drupal Developer Days Barcelona 2012 after the BoF I met with sun and he drew this diagram:
Which I have almost turned into a better rendering. Feel free to complete.
I feel "the architectural design stuff and Symfony pointers" need to be expanded upon and explained.
Generally the aim is to get a consensus on the ideas (big and small) with milestones. There seems to be so many people that are willing to help. My concern is how we can best utilise all this energy and remain focused and get stuff built that works for all of us. Groovy!
Missing any mention of Web
Missing any mention of Web Intents here: http://webintents.org/ It is the work of Google Chrome and will eventually be merged with works from other browsers who are working on moving the Share-buttons into the browser, making it possible for the user to select what services they want to have "buttons" for rather then leave that decision with site owners. This is eg. a requirement for a truly decentralized social network to work - if every person would have their own instance site owners would have to add an absurd amount of buttons to support sharing to everyone's sites ;)
Regarding modules: I myself am not an active Drupal developer anymore, but I do very much agree on the general abstraction and that was exactly what I tried to achieve with the Connector modules and what I hope that others will carry on. My idea with the Connector module was that it would be the glue needed for managing connections to external accounts in a unified way so that eg. a "share"-module could have a unified way of asking for accounts and interact with them. Thanks to the OAuth Connector almost all OAuth API:s are supported - one can add a new connector through either the UI or through a default Connector provided by either OAuth Connector itself or preferably through eg. a Twitter module or a site feature.
I would suggest bringing this thread to the attention of the Connector issue queue if you haven't yet and the OAuth module issue queue as well and if you feel that you don't get any responses from either then ping me on Twitter, @voxpelli there, and point me to the issues and the suggested fixes there and I can probably add you some of you as some kind of co-maintainer of those modules.
Thanks for the
Thanks for the recommendations - I wasn't aware of Web Intents, which looks to be very relevant to the goals of this initiative, at least for use cases that involve pushing out content or activity to individual services. Also the OAuth Connector and related Connector modules are totally in line with the concept Daniel has described, allowing a pluggable abstraction of the authentication layer upon which another layer for service and graph abstraction could be built.
Thanks again for the pointers - I'm looking forward to seeing what sort of momentum we can generate.
wordpress social media dashboard
Something similar to that :
http://wordpress.org/extend/plugins/wp-stats-dashboard/screenshots/
can be good also.
My Profile
Blog articles on Medium
Live stream on Twitch
<
div>Videos on <a href="http
User story?
Yes! I think that people may want this as one view on their social dashboard. Could you describe in words what the "user story" is for you? What's the requirement?
Drupal Social Initiative venn diagram
I've been toying with the possible wider extent/scope of the Drupal Social Initiative. And I created this venn diagram:
https://docs.google.com/drawings/d/1gccP6tvTiqbKtDqzac9c1_myKiBnH8R-HKqr...
It's not totally accurate by any sense. Just trying to lay out the land.
What do you think?
Prefer open APIs
Using something like OAuth Connector (or Hybrid Auth) that implements OAuth within Drupal prevents third party JS stuff that likely gathers info on user behavriour across sites.
Similarly, the OExchange protocol can be used directly to link to other sites in order to share posts.
It would be nice to have a "no third party scripts" function where external resources are only only contacted when you use them and only the service you choose.
Notes from the DrupalCamp London 2013 BoF...
Here are notes from the DrupalCamp London 2013 BoF (Saturday 02/03/2013 Room C167)...
Great news! Kendra Initiative potentially has some serious money (100K GBP promised by UK's TSB if I can raise 80K GBP) to build Kendra Hub – Media Asset/Content Management, Semantic Syndication/Promotion and Commerce Tool
http://groups.drupal.org/node/18936
Kendra Hub needs everything that the Social API ecosystem will provide. In terms of time scale I need to raise the money in 4 months to qualify. If you are interested this funding comes via Celtic-Plus approval:
http://www.celticplus.eu/Projects/Celtic-Plus-Projects/2011/MEDIAMAP+/me...
But enough of that!
Let's start issues http://drupal.org/project/social_api
Using this project as a placeholder and not necessarily the ultimate name for the module/whatever – to be decided by us.
Separate business/strategy, use-cases/requirements and technical/architectural requirement with components.
Darren added George Boobyer – iAugur (http://drupal.org/user/750068) as project maintainer.
Darren added Guy Shneerson – guy_schneerson (http://drupal.org/user/755184) as project maintainer.
Guy suggested for us to target Drupal 8 for all this work. All agreed.
Alex McFadyen suggested talking to Web Services and Context Core Initiative (http://groups.drupal.org/wscci) about methodologies.
Look at http://www.gigya.com and http://janrain.com.
Set up sprints at DrupalCamps and DrupalCons and elsewhere to do a big push at Prague 2013.
How do we deliver the results of the work? Modules? Features? Install profile?
So we'll continue with wiki pages on g.d.o in tandem with issues on the d.o project page. Keep expanding the wiki page as a kind of plan with use cases and mile stones to serve as a document that we present to the wider community. So chip in do. We all then post RFCs to our own contacts and people we think should be involved/aware.
And any help with diagrams and descriptions would obviously be great to bring clarity and structure to what we are trying to achieve.
And pass this on to others you want to bring in now – who could help with initial ideas – why not?
great news!
daniel/dahacouk - very interesting developments, to be sure. i will be watching this closely, as i am working on a site that will be needing lots of social hooks eventually. (but it will be in d7 at least to begin -- and i understand targeting d8 instead. insert rant about speed of drupal cycle we have all heard before here. etc.)
i am currently using janrain (and have experience with gigya from a previous job, albeit light). my usage of janrain is not complete enough to be that useful so far, but i will try to pipe in with my 2 cents when i can. (aside: janrain is in portland where i live -- and also where u.s. drupal con is in a couple months -- not sure how useful this is; but anyone let me know if you are going to be in town! :) )
short version: i will be watching and will try to help out where/when i can. likely if anywhere, it will be on the google stuff, as that is where i am focusing my energy presently. (e.g. g+ "app activities" [was "history" api], youtube api 3.0 integration etc.) ... but sorry i will more often be lurking. know i will be rooting for this from the sidelines though.
-jon
Please join Drupal Social Initiative on g.d.o!
Hello All,
We've been making some progress on the whole Drupal Social Initiative (Social API) front. We want to get some infrastructure in place for the buildup to Prague. Then we'll be able to do some more outreach and run some sprints, etc. To this aim I've created a group at:
http://groups.drupal.org/social-initiative
It is submitted for moderation. As you can see from
http://drupal.org/node/1996986#comment-7426440
A moderator, Scott Reynen (sreynen), is asking for me to "demonstrate interest".
So, please do join the group ASAP and invite anyone else you think may want to be involved.
Many thanks!
Cheers Daniel
Hello everyone, I have just
Hello everyone,
I have just seen this, as I am planning on attending the BoF at drupalcamp London http://2014.drupalcamplondon.co.uk/content/drupal-social-initiative-soci...
We've been creating a Social Content module within our agency, that has now gone through several iterations and is on version 2. The project can be found here: https://drupal.org/sandbox/leonnk/2207943
It's still being developed (hence the sandbox version), and has just had a bit of a rewrite to a new object oriented structure.
It basically still needs a lot of work, but would be interested in collaboration now that I have found this group.
I've set the time for the BoF
I've set the time for the BoF to be Sunday, March 2, 2014 - 11:35 to 12:00 Room A109
I missed the bof :-( (I
I missed the bof :-(
(I thought the bofs all started at 2pm).
Anyway, will keep my eye on this group and see if there's anything we can help or collaborate with.
Is there a module that is being worked on?
Hi Leon the BoF ended up
Hi Leon
the BoF ended up clashing with another BoF so you haven't missed out :)
Google funds Drupal Social API...
I am extremely excited to announce that Google has just announced that it is funding Valentin Sánchez to work on the Drupal Social API via Google Summer of Code (GSoC) 2016:
https://summerofcode.withgoogle.com/organizations/5879646751031296/?sp-p...
I've set up this Google mailing list to celebrate:
https://groups.google.com/d/forum/drupal-social-initiative
And here are some other ways to participate in the project:
https://groups.drupal.org/social-initiative
https://www.drupal.org/project/social_api
https://github.com/drupalsocialinitiative
Google Drive: https://goo.gl/YDvjxL - See "Read Me First"
Please invite Drupal users and developers who you think would be interested in helping the Drupal Social Initiative to create the Drupal Social API.
Cheers Daniel