Twitter crossposter
-
I understand this might be of interest only to a niche audience.
But here goes.I hate almost everything about Twitter, particularly being monetised by them, spammed by many others and the "twitter bubbles" that get created. But ... I am "required" to have a presence there on one project and taking flak for not doing so.
I read tweets from accounts which I have to follow via RSS feed from Nitter (self-hosted) so I don't get contaminated.These seem to be the primary apps for posting content to Twitter from "outside".
https://github.com/renatolond/mastodon-twitter-poster
https://gitlab.com/fedstoa/moaBut I can't get them going on a non-Cloudron VPS.
Wondering if they might appeal to a Cloudron audience, even if only a sub-set.Of course, I could use the public instances of the above but (a) I believe in self-hosting, (b) don't want to load other peoples' servers, (c) need to support a number of accounts.
Alternatively, do let me know if you know of other approaches to solving this problem.
-
@timconsidine You are very welcome!
I will be interested in some of the things you learn there as well, as I'd like to connect Insta posting to Twitter posting and not necessarily from the same account(s).
-
@robi good suggestion about n8n
I got a basic flow working.
I used Zapier a lot before, so should understand n8n but struggled a bit to understand its components initially. But persevered. n8n looks more flexible/powerful than Zapier.I set up a flow with :
- interval node as trigger every 15 mins
- RSS Read node : I didn't know that Mastodon make it so easy to get a feed of a user's posts with just
https://<instance.name>/users/<username>
- SET to create a new JSON entry e.g.
tweetString
to get the rss feed elements - FUNCTION to strip stray html from
tweetString
- TWITTER node to submit the
tweetString
: I found n8n UI a bit unclear : you have to set up the oAuth in apps.twitter.com before setting up the n8n node (I read it as after)
Still have to deal with adding images and links from the rss feed to the tweetString, but I think it is doable. Certainly works well for plain text toot-->tweet.
-
Excellent progress! You can find more inspiration from the N8N wokflows community https://n8n.io/workflows/
Their community forum also had this that will be useful.
https://community.n8n.io/t/twitter-error-response-403-tweet-needs-to-be-a-bit-shorter/3207/5 -
@timconsidine said in Twitter crossposter:
These seem to be the primary apps for posting content to Twitter from "outside".
https://github.com/renatolond/mastodon-twitter-posterYeah, I use the hosted version of that here:
https://crossposter.masto.donte.com.br/But it'd be cool to be able to self-host it too.
Although sounds like you're getting there with just doing it with N8N too, which is great!
But this crossposted app does still have some nice features/ settings (e.g. whether or not to crosspost RTs etc) which I'd guess might be harder to replicate using N8N.
-
@jdaviescoates said in Twitter crossposter:
But this crossposted app does still have some nice features/ settings (e.g. whether or not to crosspost RTs etc) which I'd guess might be harder to replicate using N8N.
That's just a condition (IF) block to filter out RTs, etc. Easy Peazy
-
@jdaviescoates I may have spoken too soon.
n8 is working but Twitter Oauth is playing up.
Strange as it was working last night. -
@timconsidine perhaps you've hit some Twitter throttling or something? I'm pretty sure there are limits to how many calls you can do.
-
@jdaviescoates yes indeed there are.
But normally they give you a specific error message.
At least they did when I played with some PHP scripts.
The error coming back is that OAuth is not connected.
Even thought it was.
Even though I deleted and created new credentials and new connection.
I suspect a network error or a domain block.
Investigating. -
@jdaviescoates said in Twitter crossposter:
Yeah, I use the hosted version of that here:
https://crossposter.masto.donte.com.br/Yes this is cool, and I have used it before on a test basis.
I'm just trying to do same on self-hosted basis.
One of the links in original post is the source to that site
https://github.com/renatolond/mastodon-twitter-posterI'll have another bash at installing it this weekend, because as you say, it has some neat features.
-
@timconsidine I'm an idiot.
Or my browser is.
Blocks pop-ups without showing any indication of blocked pop-up. Twitter pop-up to authorise n8n app was not shown.
Switching browser showed it.
What a dumb schmuck I am ! -
@timconsidine the ongoing saga :
despite my idiocy earlier (cough, let's draw a veil over that), it seems there is a bug in n8n v0.139It seems to be a bug introduced in the latest version of n8n 0.139.1. Please downgrade to 0.138 or set the env variable N8N_USE_DEPRECATED_REQUEST_LIB=true
My Twitter node authenticates fine and posts static text, but fails to post the result of a workflow. Kinda useless in its current state. But there is a workaround, praise be to someone on high.
Just FYI in case any others are struggling as I have been.
I guess better post this and future in n9n forum, rather than here. -
@robi said in Twitter crossposter:
Why not set up an N8N workflow to take something from say RSS and post it to Twitter?
This has worked well, so thanks again.
Maybe not as full-featured as
moa
orrenatolond
But doing what I need and I think easier to maintain in future.Need to add x-post a mastodon image and to add a schedule for repeating running every x hours.
-
@timconsidine So this is after the config tweak?
Yes, images/videos would be a useful/required thing.
Why are there two twitter accounts?
-
@robi yes, I set the environment variable rather than downgrade.
And then it just sailed through.The 1st twitter account is more of an organisation account and the 2nd twitter account is an individual account.
I mostly wanted to test that I could auto-RT another account.
TheSet1
grabs the tweet id returned by Twitter on posting, and the 2nd account RT's that tweet id.
Not hugely useful but I wanted to prove it could be done.
TheWait
is just to provide an 'air gap' of sorts in case it all goes through too quickly for systems to cope.Images are now added.
Docs/forum sayHTTP Request
node needed for that.And as the RSS feed returns a list of toots, I needed to avoid duplicate posts. So I added an
IF
node which tests if a toot is older than xxx milliseconds (5 mins in my case), and only continues if it is newer. If none newer, the flow expires (no false tree set up).Now I just need to add a
cron
orscheduler
node.
But leaving it manual firing for now to test edge cases which different content might show errors on. -
@robi said in Twitter crossposter:
I'd like to connect Insta posting to Twitter posting and not necessarily from the same account(s)
I don't use Instagram but ironically just found one of my 'persons of interest' does, and mostly tweets links to Insta posts. So you have to follow them to see content. So I may look into this.
Brief research shows you can use Bibliogram to get an RSS feed of Instagram posts from an Insta account. Based on that, it seems at first glance that it is possible to use similar workflow to my Mastodon2Twitter to achieve that.
I tried briefly to self-host Bibliogram but installation failed, so as Instagram is low usage for me, I'm just using a hosted Bibliogram (https://bibliogram.snopyta.org/) to give me the RSS feed.
EDIT : just seen Bibliogram is a supported app on Yunohost. I don't have a Yunohost server .... yet !
-
@timconsidine Beautiful, nice find on bibliogram.
I was looking at other such services and Nitter showed up, with a bit more understanding of why it exists as described here:
https://nitter.1d4.us/aboutThis also means that if you replace your Twitter node with a Nitter node, you'll likely have a better experience posting to Twitter. (no rate limits of dev account required)
-
@robi said in Twitter crossposter:
if you replace your Twitter node with a Nitter node
oooo, didn't know I could do that !
I also noticed RSS-Bridge supports an Instagram feed, but haven't played with it yet.