About this talk
In this talk, Keegan discusses the development and capabilities of a Drupal module called Empas, which stands for "microb publish once on your own site, syndicate elsewhere." He shares insights from his experience with Drupal and outlines the objectives of the Empas module, focusing on the ability to post content from a Drupal site to various social media platforms. Keegan emphasizes the importance of maintaining control over content ownership through the canonical URL while providing an easy configuration process for users. He also explores alternative approaches to social media integration in Drupal and highlights companion modules like social post Facebook and Mastodon, offering a comprehensive overview of how to effectively syndicate content across different platforms.
Full transcript
All right, it is 1:30. So, hello everyone. Welcome for showing up. Um, I was told just a minute ago that there's no risque jokes. So, uh, half my presentation's going to have to go, but I'll, uh, I'll try to do my best to wing the rest of it. Um, my presentation here is called Publish once in Drupal syndicate everywhere. My name is Keegan. Um, and I'm a
worker owner of Aaric Technology Collective. I've been working with Agaric and in the Drupal space since around 2019. It's kind of a slow start, but uh around 2021 I had I was at least knees deep in Drupal and and a bit deeper now. Um but yeah, I hope everyone finds this uh this presentation helpful and um let's get started. So, some of the things that I'll be
covering, um, basically just some of the basic principles and and guidelines of, uh, and like objectives behind, uh, just all the stuff, all the work that I've been putting into, uh, the social post ecosystem and the ability to be able to post from your Drupal site. Um I'll be talking a lot about um my module that I developed with a Garrett called empast which stands for microb
publish uh once on your own site syndicate elsewhere. Um and I think like the bulk of this presentation is just going to be going through screenshots so you can kind of see what the general setup and configuration process looks like and just what it feels like to use the module. Um, I'll give a few tips on just u managing the environment. Um, and at least some things
that I think are good ideas, but other people might have different opinions. Um, and then of course I'll um take a step back and show that there are other there are other approaches to posting to social media from your Drupal site that don't all rely on impas and there's other there's a lot of opportunities and potential for the Drupal community to be growing right now. So, Um
some of the like really just basic principles behind uh what what we've been trying to do with impos is um there's there's really a few different sets of principles that all kind of mean pretty similar things. Has everyone heard of cope or create once publish everywhere? Yeah, that that's kind of a little bigger in the Drupal space, but there's also another one posi which is what the
module that I created and posi is named after. publish once on your own site, syndicate elsewhere. And a big part of really all of this and the value that we get out of following these approaches are that one, we get to own the canonical canonical URL of our content. We get to say this is where our content lives. This is its home and we get to kind
of control the lifespan of that content and just have control over generally where it lives. Um, so whenever we post out to social media, um, most people probably know this, right? You want to link back to your own site or your own what you consider to be the canonical URL whenever you post to any other services or platforms. Um, this is just a little um, preview of
the homepage, the the project page for the module um, and the the link down at the bottom. So slash projects Um so taking a few steps back when I first was getting into um working in the social post space. Uh the one of the first challenges that I had in Drupal altogether actually was development of the social post Facebook module which was it was already developed prior
to that but getting it upgraded for compatibility with at the time I think it had already been compatible with Drupal 8 but there were major changes that had happened to the underlying uh module uh the social post module and then in addition to that there were a lot of breaking changes that had happened uh to the Facebook API itself. So this was kind of the my my
introduction to Drupal uh one of the first modules that I had worked on and it was uh a big challenge for me just because I didn't know a lot about Drupal and and because there were so many things about this module that had broken um and trying to understand uh you know Facebook's um their API policy and you know how to integrate with uh their their API
and just a lot of things had changed like you used to be able to post directly to uh your own like personal Facebook page, but they changed it or trying to think of the best way to say that, but now you have to post to like pages, right? Has anyone here uh worked with posting to Facebook from your Drupal site? Uh and for I saw a few
hands, did you work with the social post Facebook module at some point? Um and are you working with it currently or? Yeah, that's that's kind of what I expected because what you know I went through the same thing of this whole thing's broken. Um and and my sense of of that going through that experience was uh you know we've seen a lot of fracturing in the uh
just among the uh social media platforms in general integrating with the APIs you know comes with a lot of difficulties. Um, and then you know, of course, changes are happening in Drupal all the time. So on the Drupal side, there's things like, you know, my last question here, do do rules still work? Right. So, um, I'm not I think I think that rules actually does have support
right now and there's been a lot of development for that. I haven't personally been working with rules, but if anyone is interested in helping out with rules integration, it's not my priority, but if it's yours, then maybe that's something we can work on together. Um okay so moving past uh just that initial um you know working with Facebook and those challenges. I guess one thing I wanted
to mention um actually before I I move back on to Empas about working with Facebook is that it has been very difficult to to work with Facebook at different times. if you have any hesitation. Um, I'm still going to say that integrating with Facebook is a little bit tricky. Um, just because the setup process and uh their whole like development console for for the API like is
still convoluted. But the good news is that the documentation is like pretty good right now as far as working through some of that. So, it's a good time to try to get back into that anyway. And I'll speak a little bit more about that and some of the other modules um as I continue. But um I do want to like let people know that if you want
to work with Facebook, now's a good time to try it anyway. Um all right. So getting into empas um a lot of the challenges that I was having initially getting into uh this space was um there there there are a bunch of different um or at least like several different alternatives for how you can manage posting from your Drupal site. Um and I had tried a few
of them including um uh including integration with the activity pub module. Um I'll I'll speak a little bit more about that later as well maybe if I have time. Um there are ways of using the bridgy service to integrate with Indie Web and and then there's as far as with uh with that and that would work for both Twitter and for Mastadon but I don't I don't
know about Twitter anymore. Um, and then there was there's actually another module that I know about called Masttodon API which lets you um more or less it gives you um the ability to press like a post uh from like a button to to post your content like while you're on the page. And so notably all of these different modules, one of the issues that I had with
all of them, even though I've tried working with not not all of them, but but a lot of them, is that pretty much all of these modules require that you have to be on the node form page and clicking save, you know, while you're on that page in order for the post to actually go out because it would just rely on actually being like actually on the
page itself. And that had was a problem for me and some of my clients because we were publishing content during cron jobs, you know, like there are more ways to publish content than when you're on the the page and and pressing save. So that's one of the the um objectives behind some of the work that I've done. one of the major things that I wanted to solve
is basically the when posts go out, it should be agnostic, right? It shouldn't care about how you're publishing and how you're saving. it should just when it gets published, that's when the post should go out. Um, so that's that's actually what most of these these points are about. Um, another another piece of it is just like um I want it to be easy so that when you
um when you make a post somewhere from your Drupal site, like you have an easy referenceable way of saying of seeing um basically all the all the posts that went out but together in one place, you know, all the posts that are about the same thing. um going to each of the different platforms, it should be easy to like list out those posts and see them all
together. Um and then the last thing is uh I want it to be easy to configure, right? Because some of these things are challenging and unfortunately I can't fix um making it easy to configure uh things in like on the Facebook side, right? That's not really within my power, but I can do as much as I as possible to make it easier to at least set things
up on the Drupal side. All right. So, like I said, I think the bulk of this presentation, um, I'm just going to be going through some screenshots and showing you what it looks like to generally just to set up the Impossity module. Um, and these are really the the main steps that you'll see here, right? We're just installing, enabling the module, um, and then installing any modules
that are implementing the Emposi plugin. It doesn't do anything by itself. you need other modules that actually handle posting to each of the different Um, a big part of this that was a more recent development maybe back in the fall was um actual like plug-in report page so that you can kind of see the status of these of each of the plugins and like whether or not
it's ready to use. Um, I will be looking for feedback on that and I definitely have improvements in mind but um but you'll see what it looks like. Um, and then mostly just the the process of enabling uh the inline micro blogging fields on each of your content types. So those are some of the things that we'll see. Let's take a look. I think I don't know
how how well everyone can see this. I was hoping it would look a little bit bigger, but right now we're just looking at the module installation page. Right? This is what uh this is what you'll you'll be looking for when you're trying to install Emposi. It should say micro blog, publish on your own site, syndicate elsewhere, check the box, install. I think most of you, maybe not
everyone, but I know a lot of people in the Drupal space know how to install a module on your page or enable a module on your on the extend page. Um, so after installing the module, I head over to the impossi plugins report. And this is something I want to work on cuz you see this looks like a pretty empty page, right? There's nothing much going on
here. There's no instructions as to where you can find plugins. These are things I want to make sure that I have documented on the on the project page. And I would also like to improve the documentation on this report page so that you don't just come to this report and be like, what do I do next? Right? So I realize that's not perfect, but there's still work
to be done. All right. So some of the plugins, some of the modules that are implementing the impossi plugin, we have what I mentioned before, social post Facebook. Um, and what I was mentioning, the the 3.0.x module is working. Currently, it will only allow you to authorize posting to a single page. like as you're going through the um the authorization process, you'll you know be redirected back
and forth between the Facebook site and your own pa and your own Drupal site as you're authorizing uh posting and it'll ask you to select basically a page and if you select more than one you'll get an error just so you know. So that was that was just the my simple solution for now. Um and so I don't currently support uh posting through impos anyway. It's possible.
I don't currently support posting to multiple pages at the moment. We have social post masttodon which um is basically same thing. It's built on the social post framework. Um and that was actually I was curious about it in the fall and I found an old sandbox for it that uh that I think someone had started during some Google summer of code maybe in like 2018 or so.
um it was based on an older version of social post um and was incomplete. So basically took that um got it all up to date and now we have social post mastadon also able to integrate with empas. It has the plug-in available and this is not in the social post ecosystem but is very adjacent is the blue sky module by and um this was I believe developed
by John Lock. So, um it's it's a great module and uh there's there's not currently builtin integration. There is um this issue fork down here which I think uh you can but yeah anyway I I put the link to the issue fork. I hope to get that through soon. Um the issue fork does work. Uh one of the only things with it is that John asked me
if I could um modernize the hook classes. So that's just like one step. If anyone wants to help with that on contrib I've got some examples and things I'm happy to work on it myself also but that's the only thing blocking it and um uh we should we should have a blue sky integration uh very soon and if if you're if you're ambitious go ahead and just
install the issue fork. All right so I uh I after installing a couple modules I didn't install blue sky here. This was just uh me working on a quick test site and trying to get uh a quick little example uh to be shown. But here we can see we have the the plugin from social post Facebook visible. Um it shows which uh the name of the plugin
um what it's pro which module is providing it the plugin and whether or not the plugin itself is ready to use. And then underneath of each listing is also some instructions on how what needs to be done basically for the plug-in to be So these are all these um these are all basically defined um in the in the plugin itself. Um, and I think a good generally
a good way to do this is um, I've just been just trying to do my best to describe what needs to be done to set it up and any links just put a link to wherever that configuration needs to happen. Um, so we'll be going through I won't be um I won't be doing Facebook right um in for this demonstration. I'll just be showing Mastadon, but you'll
at least kind of get to see uh what that looks Um, so basically what I do here is I go and I click this uh this link here. It says activation of the Mastadon plugin requires that the site is authorized to toot on behalf of a sitewide Masttodon account account. If anyone doesn't know toot is just the word for post on Mastadon. Uh, so anyway, I clicked
this link to the sitewide Mastedon account settings and I skipped this part, but basically um this this over here we're looking now at the Mastedon uh the social post Mastadon settings. Um, and there is this sitewide account tab. Um, and when you first get to this page, if you don't have an account here already, um, it'll it'll basically there will be a form that lets you um,
enter like your, um, your key and secret basically that you get from Mastadon in this case. And the nice thing about both Mastadon and Blue Sky is that they're pretty easy to integrate with. So, I do recommend actually if you want to play with this, maybe start with those. um especially if you're not familiar with working with the Facebook API because that is just like a little
bit more reading a little bit heavier documentation where the Maston and Blue Sky documentation are like they're pretty simple and um and and also it's like similar to each other. Uh so anyway, that's what I did here. I did add um create add my uh authorized posting to my uh Mastedon account. Oh, and for for the Mastedon one also, you I didn't show the form here, but
it does also allow you to choose like which Mastadon instance. So, you put in the URL for the site. All right. So, after doing that, I go back over to the uh the report page, right? And we can see which I put this little annotation over here on the right. We can see that the social post masttodon module is ready to go, right? We just needed that
one sitewide >> and so after that, there's there's a there's a few different ways to go about using empastas, but the main intended way for this is, um, basically just enabling inline micro blogging directly on your content type. So in in the example that I'm I'll be showing here, I'll be working with a content type called blog. Um, and just go showing you what it looks like
to enable um inline micro blogging for the blog content type. So, I'm making my way over to the uh blog content type settings. U if anyone is doesn't know how to do this, it's basically you go to structure um content types and then you just click on the content type name that you want to edit and you get to the settings form and we have this little
advanced settings box here called amposi settings and there is a little check box where you can enable inline micro micro blogging and then there are additional settings per depending on uh which which module is being implemented there there. There might be like a little extra drop down box per um implementing plugin. And this one is Masttodon settings. Basically, the uh for this one, I just have the
the link to whatever the blog basically will just get appended to the post automatically so that you don't have to type it in the box. You can you can make it prepend or append, but all the different modules in terms of how the the preview link gets there. um like not not all the modules all the different social media platform services work differently. So implementing the different
uh basically implementing those different uh preview links per post service is a little bit different and that's is a fun thing to navigate as a developer. Anyway, glad we were standardized on that not but yeah that's all you need to do just enable inline micro blogging. decide where you want uh the the link to go and click the save button for the content All right, so we're
we're basically done. Um just the setup process for being able to post to Mastadon at this point. Um and I have one little one setting uh just to take note of. Um you shouldn't have to touch this for on a fresh install. Um but it's good to know about anyway. I added a little soft disable checkbox so that when you go into the settings for impos, you
can just soft disable any impos functionality. Um, I added this because when when you install the module, there's a bunch of configuration that comes with it and I didn't want to have to deal with, you know, creating configuration or what happens to that configuration when I disable the module or reenable it, right? So rather than dealing with enable it, rather than trying to manage that configuration anymore,
I just wanted a simple just turn this on and imposs right. So I don't have like I guess the main reason I thought of that. There's a couple there's a couple reasons I added this one is it's a simple little piece of configuration that you can manage between different staging environments, right? So if you don't want your test site to be posting uh to social media then
you can just in I don't you might be using config split or just config overrides just uh however however your team's doing it you can just say uh just please just disable this module's functionality altogether or maybe on the live site maybe there's some emergency something or other that's happening and you just want to turn everything off real quick because you don't know how to deal with
it yet. So anyway, I'm sure there's a few different use cases. I just threw that in there. But yeah, this is all it looks like. It's a little checkbox. I know the the writing looks tiny. It just says this setting disables automated micro blog posting without having to uninstall imposi. So pretty simple. This is just right on configuration settings and settings. I guess it's under uh web
services, the web services category for All right. And so the last part of publishing with Empas, now that we have everything set up and ready to go, um you'll be editing your content directly on uh your blog. So when you when you go and edit a blog or create a blog, um there will be a little button that says create a new micro blog. And also notably
um if you want, you can also just create micro blogs. don't have to be referencing any piece of content. here we are at the bottom of the uh create blog content type. So we're adding a new blog. And I haven't actually gone through creating a blog in this example. I just went straight to the bottom so that you could see what it looks like. It's a little
inline field. So you can click create new micro blog and once you do that it will open up a little form and based on which modules are enabled there will be different fields available. Um so if I had enabled social post Facebook then you would also see the Facebook field here available. Um, one little thing that you that is that I want to point out here also
is there is this little delay field. This is basically um if you want the this was basically added as sort of a debounce, right? So if um if someone it it's basically like if you set this to 5 minutes for example and someone publishes their their blog um the micro blog itself will also get published when that blog gets published and this delay just says wait 5
minutes before doing any posting or at least like if 5 minutes hasn't passed because if you are um this this all does happen on on cron But basically, if 5 minutes hasn't passed since this was published, then let's not send out posts yet. And this is just added here just in case you have any indecisive content editors who might be doing any last minute editing or, you
know, just like just need a little buffer before the posts go out after they publish their content. So, it's a little optional feature there. All right. And and I guess though I think I think I mentioned this but just to just to make sure that I I that I it is said and clear um when your blog gets published or whatever content type is that you've added
the micro blog to the micro blog will also get published and it's basically when the micro blog gets published that all the posts get syndicated to other platforms. All right. So, um, so one thing that I wanted to make sure or I guess there were a couple little enhancements or optimizations that were made in the process of making this module um that I hadn't seen in any
of the other modules yet, but um, one thing that is very nice is when you are when you're publishing u your whatever your content type is that has blogs on it. Basically, when you're when you're publishing your micro blogs, they don't immediately just say publish. They go into a queue. And that's basically the the logic behind that is if you are posting to let's imagine that we're
posting to five different social media platforms when we publish one um piece of content, then you wouldn't be able to load the page like to see the your alert that says, "Oh, this has been published." and you know whatever wherever you get directed after you save the node you wouldn't be able to see that page until after you you publish to right so we just take that
step out and we we're basically instead adding uh adding things to a que uh which gets cued on cron and um that queue gets processed on cron um so that's just something that makes uh just a little quality of life improvement tried to make it easy of course to integrate with empas. There's now a few examples of um different plugins for any developers that are looking to
uh make any plugins for any other platforms. One that is um I'm looking at right now or I've heard a few people mention since I've been at the conference is social post LinkedIn. Um the social post LinkedIn module uh is currently it's basically has not been updated to to be up to date with uh this the current social post framework. Um but because social post Facebook and
Mastadon have been upgraded there are examples anyway. Um that's something that if there's anyone who is interested in working on that or helping out with that that would be awesome. All right. And I already showed you that what the uh the delay field does with the uh the debouncing. All right. Some other things that came, you know, with development which I also showed was the plug-in status
dashboard. I wasn't really thinking about that when I first developed the module, but um I the the more time I spend working on this, the more helpful I realize it is to have something as a reference. that I'm still, you know, hoping to learn more about like what good UX should look like for being able to set up and use this module. And the also, you know,
the other incidental was the uh uh the soft disable feature which I also showed y'all. Oops. One second. Let me get back to where we were. Okay, so just a couple uh little tips. I mentioned this a little bit earlier on, but these are just some of the things that I um have personally personally been thinking are just good environment management tips, right? So uh I mentioned
earlier the using the soft disable feature to override uh settings in whether it's your test sites like staging site or local environment. That's just an easy uh little way to make sure that posting doesn't happen um through with impos Um, and I I guess the obvious disadvantage of that approach is that if you do want to do, you know, local testing or testing on a staging site,
then you need to remember to remove any config over overrides. Uh, which maybe is not the most um the most intuitive and I can I've already forgotten that I've done that while working on this. So So just pointing that out. The other thing is this is just a little notable thing for developers. I also like to um when syncing databases from the live site, I also like
to um to actually just prevent copying of the social post table. There's a table in the Drupal database just called social post. And that that table basically just stores um essentially your like a a relationship between your Drupal user and um and any like credentials like uh secret keys and you know things that you need for um being able to post. Um and so anyway, I just
uh I just don't copy that table over to test or local sites. Um, there's probably a few different ways to do this, but the reason for me is that when I'm working on a test site or a local site, I like I'm usually not using the same uh I'm usually not using the same social media accounts. So, anyway, I'm sure other people are going to have different
ways of approaching this, but these are just some some things that I've considered and um and think are are decent approaches to uh uh development environments. Anyway, okay. So, something that I haven't talked about at all yet is that we actually don't have to use the impossi module if you don't want to. Um, even though it does handle like setting up a framework and and an opinionated
way of managing your social media posts, if you want to have more control over the workflows behind how your your posts are going out, um, you can instead uh, social both social post Facebook, social post mastadon and the blue sky module all support ECA. So they all have their own ECA actions built in. And so if you want you can create your own workflows via ECA um
so that you can um do whatever you want. Um so that's not something that I'm going to show a any demonstration of. Um ECA is is a little bit out of scope, but um this is one thing that I'm interested in talking more about and learning more about. And um if anyone does play around with any of these modules and and does experiment with the ECA integration
um I would love some feedback on generally like what do we actually need how could we improve these ECA integrations right so when you when you're uh configuring things in ECA you'll get like a little you'll have like a few uh fields in your um and so any thoughts on like what would nice features be for for those ECA actions. Has everyone here used ECA? We've only
got a couple. Okay, we've got a couple people. Well, that's all right. Has is if you haven't used it, have you been thinking about it or has it been on your mind at all or do you not know about it? Can I get hands for people who know about ECA? Okay. Okay, gotcha. So, that's like half the room. Um, ECA is is basically for anyone that doesn't
know is is a way to be able to um like create workflows for your site without having without requiring some you could say without requiring a developer, but really without writing code is the better way of saying it, right? Like I don't want to say you don't need a developer. That's uh maybe depending on what your team looks like. um because certainly you could do it without
uh you could have someone who's not a developer who very well knows how to configure ECA. So if you don't know about it, I recommend at least learning a little bit about it or talking to any developers that you work with um in the Drupal space about it. All right, so I do hope uh to see people tomorrow at contrib. plan on just being around all day
and I've got some things that I'd like to work on. I don't feel like I need to get through all of them, but if anyone is going to be around and is interested in contributing, um I've got a whole list here. And um if any of these things sound like fun to you, come find me in the contribu contrib room. I'll have a I don't know what
I'll call it, but maybe maybe I'll call it like the impos table, but I'll be around. Come find me. Not all of these things are imposs just just to clarify. Social post Facebook, Social Post, Masttodon, Blue Sky do not depend on Impos. They all just have plugins that uh that allow them to integrate with Empas. One question at the bottom here that I wanted to check in
with people is um would anyone be interested if if I could make this happen, get uh like Drupal Forge um like have the ability to spin up a Drupal Forge instance uh maybe like tomorrow or later this week that would allow them to experiment a little bit with this module? like is that something that would be helpful for people so that you could um uh let's just
like experiment with the functionality without having to do the whole installation on your own site. Does everyone know what Drupal Forge is? That's all right. Drupal Forge is is basically just a little service that lets you spin up Drupal sites for like an hour. Um and yeah, what's up? >> I don't know if I can speak for everyone, but I'd prefer a recipe. >> A recipe. Yeah.
So that's that's here on my list of things too is if people want to um to help with like ECA setup, I think that having like a page of recommended or just even just recipes available that are good examples would be an awesome thing for this module ecosystem. So that's a really good um category of work that is uh a possibility at contrib tomorrow. So, all right,
here are a few different resources. We've got these are just all just the the page the links to the modules that I mentioned. And then I have this blog post listed at the bottom. It's not published yet. And I also need to create this redirect, but I hope to do that like right after this talk and it will be this link. So, I'll be updating that page,
trying to add any resources, maybe uploading this slideshow there. So, if anyone does want to see any of that, that will try to have that all more information there for followup. And how are we doing on time right now? >> Is created and the redirect now works. >> Oh, awesome. Thank you, Ben. Okay. Uh, so any questions? >> Yes, >> I saw on your last slide about
LinkedIn. So, is that something that's coming. >> Social post LinkedIn is something that I'm not currently working on. >> Okay. >> I've had a couple people ask me about it at the conference and I've heard another person ask about it um not at the conference but pretty recently. So, I'm not necessarily trying to pick up a new module, but if if there are enough reasons for me
to work on it, it's possible that I'll work on it. If someone else works on it anyway, it's potentially on the horizon, but I'm not making any promises right now. Yes. >> You upgraded several social posts. >> Yes. >> modules from 2.x to 3. And that's what this would be. >> That's right. That's right. So when I that's what I was talking about a little bit with
social post Facebook. One of the challenges with social post Facebook was getting it compatible with changes to the the Facebook API. The other challenge was getting it up to date with changes to the underlying social post module. Um and basically what I did with Facebook and with the social post mastedon module is the same thing that uh the social post LinkedIn module needs. Like all these modules
are structured the same. They all look exactly the same. You know with the the little differences are just um you know how the integration with the API works. Those are the main differences in the modules. and then maybe like a couple different disparities and features, but ideally we're they're all being developed alongside each other and working the same. Like a big part of the social post initiative
is that um it should feel, you know, the approach to installing all these modules and and being able to post to all your sites, it should feel unified, right? It should feel the same even though there are going to be some differences with the API setups in between. >> Yes. Does a social post Instagram evening exist? >> That's something that I It does not exist. It does
not exist. It's something that I'm curious about though, whether or not it's possible. I don't have experience working with the Instagram API and I am I tried looking into the policy, the API policy a little bit, and it's not 100% clear to me. So, if anyone does have knowledge about posting to Instagram, um, definitely let me know because it is something that I'm also interested in and
might consider working on in the future if I'm able to learn more about how how that works. But yeah, it is on my radar. It's something I'm thinking about. The other one that people ask me about is Tik Tok. I actually don't know anything about Tik Tok either. Um, but yeah, currently the only three that are working are the ones that I I showed, the Facebook, Masttodon,
and Blue Sky. Um, and others are certainly possible and it would be awesome to, you know, be fostering more engagement in this because this is this like ecosystem of modules is something that I think people lost a bit of faith in a few years ago. But like I said, Facebook is in good shape now and Blue Sky and Masttodon are easy to integrate with. So, you know,
even if you're not taking advantage of the good documentation that Facebook has, there's still a lot of opportunity in getting in into this um this module space and trying to implement this for your Drupal site. So, there's I think there's some big like easier wins compared to like four years ago basically. Any other questions? >> Yes, it >> does support media, right? uh sending uh photos with
>> so so currently I'm trying to remember how the bas it supports preview links >> Yeah, >> these modules support preview links >> and then they fetch image link from the preview data. >> It basically depends on on the on the platform. They all work differently is what I was mentioning earlier and and I can't remember all the specifics of each of them but um but for
blue sky for Mastadon and for Facebook I've gotten preview links with images working on all three. >> that's more dependent then on the open graph or other meta tags that are being used in >> I think I think with Facebook they they actually will um they'll get the like preview like image automatically from the page that you're posting to anyway. Yes. Yes. Gotcha. Yeah. >> But blue
sky, I think you actually tell it what the title and image of your post are. >> So you could actually have a unrelated title and unrelated post, >> which is just a clickbait type. >> Yeah. So they they all work a little bit differently. It's a little confusing, honestly. But all right. Anything else? >> just to say that we've seen that like there's way few people on
the Fedverse on Masselling, but engagement can be a lot higher there. U and Blue Sky is sort of in the middle whereas you know Facebook you can have like whatever a million followers and only 12 might post Facebook is doing whatever it wants to do. Um and the algorithms on blue sky, you know, are controlled by user and on mask on just it shows everybody. So, um
it there is a lot of value now that social media is fracturing a little bit more to find a way to post multiple posts even if you can't have a social media manager who is like actively engaging on each platform which is ideal But yeah, this this has been great for a lot of organizations that want to maintain a presence but don't have time to dedicate a
full person or you know parttime person actively being on the platforms. All your basic posts show up >> This is indeed a question for you. Where are as far as like presenting your social feed as hosted from Empi on your website. So you don't have to like bring back in like your your Twitter list. >> You don't your your Facebook page with the tracking pixels and the
way that it doesn't fit the design of your site. You have your own little micro blog, your own social med that's that's actually a good question. I haven't actually tried that yet, but um but setting that up should be like the the ability to set that up is there right right now. I'm not pulling in feeds. I'm not keeping track of data that if if anything's changed
on any of the platforms, I'm not keeping track of those changes right now. Um I'm I'm mostly just like you send out the post and then Drupal forgets about like that connection. Um but micro blog, the micro blog is just a content type. it is just a node on your Drupal site and so it's you can just set that up with views. Um unfortunately I have not
played around yet with actually using that functionality or like providing any um like configuration for those views. None of that comes with um any of these modules yet or or with impos I guess is where it would be. Um, but that's definitely something that uh could be a really cool uh potential thing to experiment with and see whether or not it's worth, you know, doing any um
any views configuration that that would be, you know, just smart and makes sense to just come with the module when it gets installed. >> It's also fieldable, right? Micro block >> probably build it yourself with normal content, but adding an extra field and using ECA to when it goes out >> Yes, it's Yeah. What's up? >> So, what do you got to say first? >> I was
just going to say that I would need to double check on like just the way that it's working underneath right now is actually that the micro blog has like more fields than you saw there. And I'm actually programmatically hiding some of those fields when it gets displayed in line. So I would need at least for having it inline I would need to check on I would need
to double check that code to make sure that if you added anything that it wouldn't be getting hidden >> but um but as far as editing the the micro blog by itself. If you go and do just edit the micro blog direc directly it shouldn't be hiding any fields and you would be able to still utilize that functionality there. But that is uh that's definitely something that's
that's worth looking into. And if anyone is like, you know, has things that if anyone does play around with this, like please do make issues if if there are things that you'd like to work a little bit differently or, you know, if you have questions about that. So, >> yes. >> Is it currently keeping track on the microblog node where it has been posted to? So, you
could theoretically theme it say engage with this on blue sky, engage with this on this post on uh um LinkedIn or anything like that. >> No, I don't think it actually keeps track currently. Um >> so we have to add that. >> That would be something we would need to add. Yeah. Basically like one thing that happens is I don't know how much I want to go
into this because it's a little it's a little hard to explain but basically the when you are posting uh it's it's funny, right? because you you create the the micro blog on like the blog content type was what we used in the example. Um and so that is using a module called inline entity reference. So you're basically just editing the micro blog in line. And so after
that gets published after the the blog gets published it actually keeps it keeps a reference to the the blog on the micro blog. or and blog insert whatever other content type you're you're actually using. Um, so it keeps the reference on the micro blog and the and just just like just just so that you know when when that happens in line, what happens currently is the the
inline uh reference like on the blog side actually goes away. You don't see it there anymore like as soon as the posts go out and it's done. And so that's that's just how I have it working for now. just if you want to make a new post then you can go and create a new post and like there's there's a little more there's there's you know I
could definitely think through that a little bit more but that's how it's working currently anyway if you want to like see that old post then you need to just go look at the I guess um I think we have a couple minutes yeah just a couple more minutes so one thing that I mentioned earlier on Yeah, Ben, >> just the there's a reference to the micro blog
from the post or the other way around. >> Yeah. So, you end up you end up like basically what you end up with is the reference um is from the from the micro blog. The micro blog stores a reference to whatever your like canonical content is basically. >> So, you could make a reverse relationship block to to show that. >> Yes. Yes. Exactly. That's how you would
do that with views. Yes. >> Um, so while I have like a couple more minutes, I was mentioning earlier the activity pub module. Um, that's not at all the content of this talk, but just sort of honorable mention. something that I've used and something that I think is really cool is if you wanted for your Drupal site to be um like integrated directly with uh activity pub
which is what the protocol that Mastadon uses and pixel fed basically that's what the Fedverse is built on then you can actually have your Drupal user directly be an activity pub user and when you publish content on your Drupal site someone on Mastadon could directly follow your Drupal user. So, that's really cool. The configuration in there is like it's a lot. Um, but there is documentation and
um and it's if that's something that you want like I would like to be able to integrate that a little bit more with some of the work that I'm doing here, but I don't have a a clear work with that because of what I mentioned earlier with, you know, having to be directly on the page when you save it in order for those posts to go out.
So, there's an issue about that. Um, and it's been open for a couple years, but I transitioned away from from trying to do that integration. But I still think it's a really cool module and I would be interested in still, you know, having use cases for it in the future if if it comes up because it is really cool. >> It's It is very cool. Like your
site becomes like a standalone like almost like a masked thing. >> That can interact with other Drupal sites that are using it. It's like a whole new communication paradigm. >> Yep. Yeah. No, it's it's very cool. All right. Thank you everyone for showing up to my talk today. I'm so happy to have, you know, a room with plenty of people in it. So, I won't say it's
full, but there's plenty of people here. And uh thank you very much for uh listening to me blabber on about uh all the work that I've been doing on posting to social media from your Drupal site. It's been really fun and I look forward to, you know, just seeing this space continue to grow and hopefully have more people get engaged in development of some of these cool
things that I think we should be doing in Drupal.