You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I want everyone to use rssCloud, it's very easy once you have code to crib.
right now I'm working on an OAuth connection to Mastodon, so I can hook FeedLand up to the Fedioverse.
I've heard some people are trying to get new rssCloud implementation working. I started this thread for them to ask questions, and maybe we can help (sure we can).
I think I've got it set up on my feed okay — When it gets recreated I be got the ping to rpc.rsscloud.io working and it showed in the log 🤞
What I need to look at now is subscribing to feeds and then receiving the updates in my reader. I'll look at the documentation and fire questions here if I need to.
@scripting Quick question: the feed is definitely okay and I have an endpoint (/notify) responding correctly to the /pleaseNotify challenge. The logs on rpc.rsscloud.io shows that it was notifying me when I made a change (lastbuilddate) ... but ... how is that notification sent so that I can react to it in /reader?
The cloud server will call you according to what's in the cloud element in your feed. If you want me to help figure out exactly what that is, you need to include the feed URL. (Update: At this point I misunderstood the question. It was a long day slogging through OAuth code.)
Also, it's better not to direct general questions to me personally, people are less likely to help if they think you want the help from one person in particular. Lots of years of experience with this. ;-)
The feed has the cloud element (hopefully it's got the correct info)
Each time the feed is rebuilt it fires off a ping and the log on rpc.rsscloud.io showed that was successfully received
I was able to successfully subscribe via /pleaseNotify and the logs indicated that I should have been notified in response to the pings. (This has all been within a 24 hour period so renewing the subscription is not an issue at present.)
My question is:
how does the notification happen and what do I need in the reader to receive it?
Is that any clearer?
Thanks again. Sorry if I'm being dumb and missing something.
I will write about this project on Scripting News, I want to point people at the bootcamp.
I also need to create better docs, I don't like the walkthrough -- too chatty. We can do better now.
Right now am working on getting Radio3 to work with Masto. Configuring for all the servers is an order of magnitude more complicated that Twitter, with only one server to work it out with. ;-)
Indeed, especially with all the individual terms server admins may place on using them, not that I can imagine anyone really worrying about their API used that way.
As a side note, does the Scripting News nightly feed not ping with updates? I don't receive notifications for it.
Andrew, thanks for responding. From our previous conversations, I remember that WordPress has its own server. In my test script (URL for the script is in the WP.com post), I was sending the request to that website URL in the RSS cloud element and using the procedure mentioned in the RSS file cloud element. I believe that the plugin has the same problem (did some informal tests a few weeks ago, but did not write anything down). I will post my results when I have them.
@andysylvester I was getting the same error (a valid feed was not provided) when trying to subscribe to https://brokenriverbooks.com/feed via my reader (also when testing with Postman) so definitely don't think it's FeedLand.
If my aggregator/testing app is on HTTP and I post to https://brokenriverbooks.com/?rsscloud=notify with a specified domain, everything works as expected.
If I omit the domain but specify the correct port number, it does not seem to work. Perhaps $_SERVER['REMOTE_ADDR'] in the WordPress plugin isn't correct because of a proxy or something?
If I post to http://brokenriverbooks.com/?rsscloud=notify, I get a 301 moved permanently, which I'm not sure if FeedLand handles correctly.
If anyone is interested, I just pushed an Elixir RSS Cloud server to GitHub. I had found a nice, tested implementation of WebSub, forked it and then gave it the ability to handle the RSS Cloud API as well. (The two APIs are similar, but have different protocols especially on the notification side.)
My next plan is to integrate a chunk of this code into a fork of the Elixir-based Mastodon server, Pleroma, and add <cloud> elements to the feeds produced there.
After getting the rssCloud implementation in FeedLand debugged, with the help of @andrewshell, I thought it was a good time to preserve my understanding of how it works in an example Node.js app that implements the feed reader side of the three-sided network.
This code could use a review by people who have implemented rssCloud and those who are interested.
The code is here in the reallySimple repo under demos.
Activity
colin-walker commentedon Nov 18, 2022
I think I've got it set up on my feed okay — When it gets recreated I be got the ping to rpc.rsscloud.io working and it showed in the log 🤞
What I need to look at now is subscribing to feeds and then receiving the updates in my reader. I'll look at the documentation and fire questions here if I need to.
scripting commentedon Nov 18, 2022
@colin-walker — great!
colin-walker commentedon Nov 19, 2022
@scripting Quick question: the feed is definitely okay and I have an endpoint (/notify) responding correctly to the /pleaseNotify challenge. The logs on rpc.rsscloud.io shows that it was notifying me when I made a change (lastbuilddate) ... but ... how is that notification sent so that I can react to it in /reader?
Thanks.
scripting commentedon Nov 19, 2022
@colin-walker --
The cloud server will call you according to what's in the cloud element in your feed. If you want me to help figure out exactly what that is, you need to include the feed URL. (Update: At this point I misunderstood the question. It was a long day slogging through OAuth code.)
Also, it's better not to direct general questions to me personally, people are less likely to help if they think you want the help from one person in particular. Lots of years of experience with this. ;-)
colin-walker commentedon Nov 19, 2022
Understood :)
It's my normal feed.
I copied the cloud element from other feeds:
I can register successfully but need to just sort out how to process the notifications.
scripting commentedon Nov 19, 2022
@colin-walker -- I just re-read your initial question and it's confusing, and that's probably the problem. :-)
There are three actors in this setup.
The feed, which has a cloud element that tells a subscriber how to request notification.
The CMS that pings the cloud server when the feed updates.
The aggregator that gets notified by the cloud server when the feed updates.
I think your question is about #3?
The aggregator has to connect with the cloud server every 24 hours to renew the subscription, otherwise it ages out.
You seem to say that is already set up.
So maybe the only thing you're missing is the ping, #2?
I have code you can look at for examples if you're good with JavaScript.
scripting commentedon Nov 19, 2022
Example code to look at --
For the ping -- daverss package.
For renewing subscriptions, River5.
andysylvester commentedon Nov 19, 2022
@colin-walker, here is another example code I ran earlier this month (using Dave Winer code examples):
https://andysylvester.com/2022/11/09/demo-of-rsscloud-protocol-and-reallysimple-npm-module/
colin-walker commentedon Nov 19, 2022
Thanks guys. I'm working in PHP.
Let me try to rephrase:
The feed has the cloud element (hopefully it's got the correct info)
Each time the feed is rebuilt it fires off a ping and the log on rpc.rsscloud.io showed that was successfully received
I was able to successfully subscribe via /pleaseNotify and the logs indicated that I should have been notified in response to the pings. (This has all been within a 24 hour period so renewing the subscription is not an issue at present.)
My question is:
Is that any clearer?
Thanks again. Sorry if I'm being dumb and missing something.
scripting commentedon Nov 19, 2022
OK I can answer that.
Here's the data that River5 sends to the cloud server when renewing a subscription.
The notice from the cloud server comes to you as an HTTP request on the indicated port and path.
That's it. That's how it calls you.
andysylvester commentedon Nov 19, 2022
If you look at this function (https://github.com/andysylvester/myStatusDemo/blob/main/rssCloudTestOriginal02.js#L72), your app should be able to respond to a POST from the rssCloud server (if I understand the protocol correctly).
colin-walker commentedon Nov 20, 2022
Thanks. That's what I was thinking but couldn't get it to work.
I've tweaked it and am now seeing "failed to notify" messages in the log.
What is the format of the http request it sends for the notification?
Does it send a challenge with the notification the same as with pleaseNotify?
scripting commentedon Nov 20, 2022
According to the docs, it's an HTTP-POST with one value in the body the URL of the feed that updated.
http://walkthrough.rsscloud.co/
scripting commentedon Nov 20, 2022
The challenge is exactly the same as what you receive as notification.
You can figure all this stuff out with a debugger or writing to the log. Can't you do that in PHP?
mblaney commentedon Nov 20, 2022
I've implemented rssCloud in PHP. Here's some code if that helps: https://gitlab.com/dobrado/dobrado/-/blob/master/php/cloud.php
10 remaining items
colin-walker commentedon Nov 25, 2022
I have announced cloud support here
scripting commentedon Nov 25, 2022
Colin, I pushed it out via my linkblog.
I will write about this project on Scripting News, I want to point people at the bootcamp.
I also need to create better docs, I don't like the walkthrough -- too chatty. We can do better now.
Right now am working on getting Radio3 to work with Masto. Configuring for all the servers is an order of magnitude more complicated that Twitter, with only one server to work it out with. ;-)
colin-walker commentedon Nov 25, 2022
Indeed, especially with all the individual terms server admins may place on using them, not that I can imagine anyone really worrying about their API used that way.
As a side note, does the Scripting News nightly feed not ping with updates? I don't receive notifications for it.
scripting commentedon Nov 25, 2022
@colin-walker -- a few of my many feeds don't ping. wouldn't surprise me if the nightly one didn't. i'll swing around to it when i get a chance. ;-)
andysylvester commentedon Dec 5, 2022
I am investigating if WordPress.com support for rssCloud works. I think there is a problem, I created a WordPress.com forum post (https://rsscloud4.wordpress.com/2022/12/04/rss-cloud-support-in-wordpress-com-not-working/) to document the issue. I do not think it is a problem with FeedLand, but posting it on this thread for awareness. My next step is to look at the WordPress plugin for RSS Cloud (https://wordpress.org/plugins/rsscloud/) to see if there are issues there.
andrewshell commentedon Dec 5, 2022
Last I looked into it, WordPress implements its own rssCloud server in the plug-in. I’ll see if I have time this week to look as well.
andysylvester commentedon Dec 5, 2022
Andrew, thanks for responding. From our previous conversations, I remember that WordPress has its own server. In my test script (URL for the script is in the WP.com post), I was sending the request to that website URL in the RSS cloud element and using the procedure mentioned in the RSS file cloud element. I believe that the plugin has the same problem (did some informal tests a few weeks ago, but did not write anything down). I will post my results when I have them.
colin-walker commentedon Dec 5, 2022
@andysylvester I was getting the same error (a valid feed was not provided) when trying to subscribe to https://brokenriverbooks.com/feed via my reader (also when testing with Postman) so definitely don't think it's FeedLand.
scripting commentedon Dec 6, 2022
I wrote a top-level explainer for rssCloud.
http://this.how/rssCloud/
andrewshell commentedon Dec 7, 2022
I've been doing some testing against https://brokenriverbooks.com/feed and its cloud server.
https://brokenriverbooks.com/?rsscloud=notifywith a specified domain, everything works as expected.$_SERVER['REMOTE_ADDR']in the WordPress plugin isn't correct because of a proxy or something?http://brokenriverbooks.com/?rsscloud=notify, I get a 301 moved permanently, which I'm not sure if FeedLand handles correctly.So basically, I can confirm this works:
andysylvester commentedon Dec 7, 2022
Andrew, have you tried running your testing app on a port other than 80?
andrewshell commentedon Dec 7, 2022
Let's not pollute this channel by debugging the WordPress plugin. We can continue the conversation over here:
https://gist.github.com/andrewshell/8b57f96bf62a1dea9fa1a8137e13951a
scripting commentedon Dec 14, 2022
Note I finally got the FeedLand server-side implementation of rssCloud buckled down with the help of @andrewshell.
pzingg commentedon Dec 15, 2022
If anyone is interested, I just pushed an Elixir RSS Cloud server to GitHub. I had found a nice, tested implementation of WebSub, forked it and then gave it the ability to handle the RSS Cloud API as well. (The two APIs are similar, but have different protocols especially on the notification side.)
My next plan is to integrate a chunk of this code into a fork of the Elixir-based Mastodon server, Pleroma, and add
<cloud>elements to the feeds produced there.scripting commentedon Dec 18, 2022
After getting the rssCloud implementation in FeedLand debugged, with the help of @andrewshell, I thought it was a good time to preserve my understanding of how it works in an example Node.js app that implements the feed reader side of the three-sided network.
This code could use a review by people who have implemented rssCloud and those who are interested.
The code is here in the reallySimple repo under demos.
https://github.com/scripting/reallysimple/tree/main/demos/clouddemo
Hope this is helpful. ;-)