snarfed / bridgy

đź“Ł Connects your web site to social media. Likes, retweets, mentions, cross-posting, and more...
https://brid.gy
Creative Commons Zero v1.0 Universal
710 stars 52 forks source link

Implement support for Diaspora nodes #198

Open bnvk opened 10 years ago

bnvk commented 10 years ago

Diaspora has a strong community of users on various "pods" around the world http://podupti.me

While in Berlin, I've taken to manually POSSE'ing posts that might be of interest to hackers on one of their pods https://despora.de

https://despora.de/posts/1951612 https://brennannovak.com/notes/472

Would be nice to backfeed posts from Disapora nodes!

kylewm commented 10 years ago

This would be awesome, but also want to mention that Bridgy might be overkill for something like Diaspora or status.net or pump.io that is federation-friendly. Like I think a Diaspora plugin on a locally running pod that sends/receives webmentions might be easier to implement and wouldn't have to resort to polling

bnvk commented 10 years ago

@kylewm good points. Of course that requires either someone from IndieWeb community to go learn their stack and do so, or people in those communities becoming interested in Webmention. Additionally, getting each node to install the plugin / update that supports webmention would also slow things down.

But your idea very well might be a better approach- i'm not too opinionated on this as I haven't looked at implementing any of those protocols!

snarfed commented 9 years ago

cc @phyks, who's expressed interest.

https://wiki.diasporafoundation.org/Federation_protocol_overview#ActivityStream_of_public_posts says you can get posts (and other data) as ActivityStreams, and that the reference implementation includes an API. yay.

Phyks commented 9 years ago

@snarfed

Ok, I got some updates about Diaspora I think. First of all, there is a public feed per user, to publish its public posts. Mine is accessible at https://pod.phyks.me/public/phyks.atom. But this does not seem to be of great interest for the discussion here…

Next is this page that you already linked. It says:

 An ActivityStream of public posts.
 An API that allows third-party applications to use your pod’s data on behalf of your users, using OAuth authentication (the OAuth protocol).

The ActivityStream of public post is the previous ATOM feed which does not include the necessary informations. However, I cannot find any information about the API. It is also mentionned at the end of this old wiki page but there is not much information.

Better, there is a feed associated with each posts. This means that for a post (say this one), there is an associated feed which includes likes_count and reshares_count. However, I do not know exactly how they are handled as on the previous example, I have a like, but it does not appear in likes. I fear that likes are internal to the pod only.

Finally, I found https://bitbucket.org/faldrian/diaspora-reshare-visualization/src which is the code behind http://jenseitsderfenster.de/diasporavisual/. If you enter a post (say https://pod.phyks.me/posts/3834), it gives you the number of likes, comments and reshares associated to this post, but not the actual information about them =(

EDIT: And it is said that Diaspora SHOULD implement PuSH, but I cannot find any infos about it and my pod simply does not offer PuSH AFAIK.

EDIT2: From #diaspora on IRC:

21:28:53       Phyks | hmm, on this page of the wiki (https://wiki.diasporafoundation.org/Federation_protocol_overview), it is said that “An API that allows third-party applications to use
                     | your pod’s data on behalf of your users, using OAuth authentication (the OAuth protocol).”
21:29:01       Phyks | is there any extra doc somewhere on this point ?
21:29:17       RDash | Phyks, you mean connecting services to your diaspora*
21:29:40       jhass | Phyks: no because that section should be removed since that part was reverted entirely
21:29:43       Phyks | yep, ideally I'd like to have PuSH to services for likes / comments
21:29:51       Phyks | but diaspora does not seem to implement it =(
21:30:28       RDash | Phyks, feel free to submit a PR or discuss it on loomio :)

EDIT3: Ok, so basically the only information I am able to have from their IRC channel is "look at https://github.com/Raven24/diaspora-federation/" everything is there ><

snarfed commented 9 years ago

thanks for the research @Phyks!

btw, pubsub definitely isn't a requirement for bridgy, whether PuSH or anything else. we currently poll the four silos we do support, so I'd be fine with polling diaspora sources too.

snarfed commented 9 years ago

showing only reply/like/reshare counts, and not the actual contents, is how the ActivityStreams schema works, so i'm not too surprised about that. it definitely seems like there should be some way to get the actual contents though. maybe at another URL endpoint?

for example, Google+'s API is built on ActivityStreams, and they have separate API calls to get replies, +1s, and reshares: https://developers.google.com/+/api/latest/comments/list https://developers.google.com/+/api/latest/people/listByActivity

Phyks commented 9 years ago

@snarfed Yep, I know that PuSH is not mandatory, but that would have been really nice :)

Actually, I have some doubts about Diaspora at the moment… I mean, it is an opensource project, but it seems to be even more closed than Facebook !

I idled around on their IRC channel, read the doc and all of this, in order to find more infos. But most of the doc is actually either out of date, purely descriptive, or talking about objectives in the far future (things like the OStatus API or so).

At the moment, I only see two ways:

But I cannot find any further doc about the provided ActivityStreams and about a particular other URL endpoint to fetch actual likes, replies and reshares.

So far, the only info I managed to get from them is ”read the f*cking source / doc” and “here is the Ruby gem to handle federation, use it and that's all”. So I am quite disappointed by the community support at the moment, and feels like they are not interested at all to help us get backfeed =(

snarfed commented 9 years ago

that does sound disappointing. :(

I wonder if part of it is just that the project hasn't been very active for a while, since iirc the founders/leaders left a while back. that could explain everything being out of date and people not helping much.

Phyks commented 9 years ago

Yep, it is in some sort…

I really feel like the community is not interested at all in this possibility, and does not give a damn to crossposting to silos. Because Bridgy support could also give Diaspora the ability to handle crossposting to Facebook…

However, there are regularly commits to Diaspora repo, but mainly for backend stuff and nothing really huge and new, at least for the last six months.

At the moment, I feel like it will be heavily time consuming to manage to get a clean Diaspora support in Bridgy, and am not really convinced it is something really interesting, for any of the projects involved. At least, unless someone from Diaspora is willing to give some better infos…

Actually, I feel like Bridgy users have many expectations and this one may not be top priority, especially as I am not sure it concerns a bunch of people (but I may be underestimating).

I was interested in Thingiverse backfeed as well, which offers a fully-featured API. I will focus on this first, to get first contact with Bridgy, I think :)

tantek commented 9 years ago

Phyks, I support Activity Streams 1.0 / Atom + PuSH on http://tantek.com/ with full discovery (basically the previous attempt at Federated Social Web standards) but don't know of any ability for Diaspora to consume this. For reference, Status.net did support this, and I was able to federate from my site to Status.net sites.

If you can find / demonstrate working (or interesting in) a Diaspora account "following" an arbitrary realtime AS1.0/Atom+PuSH feed (including different object types like articles, notes, likes like I have in my feed right now), then there may be something worth pursuing - I'd say that's the minimum bar that needs to be met by Diaspora before bothering to work on any Diaspora-specific support.

singpolyma commented 9 years ago

Status.net did support this

And the continuation, GNU Social, still does. I use @tantek's feed as well as my own to test such implementations all the time :)

snarfed commented 8 years ago

if anyone's interested in tackling this, i've written up comprehensive instructions on how to add a new silo to bridgy. feel free to jump in!

Flaburgan commented 7 years ago

Hi everyone, I'm from the diaspora* community and want to point that many things changed. First of all the federation has completely been rewritten and is now sitting at https://github.com/diaspora/diaspora_federation with the complete documentation here: https://diaspora.github.io/diaspora_federation/

We also hope to be able to provide an external API. The specifications are already written here but are not implemented at the moment.

snarfed commented 6 years ago

fwiw, i'm now likely to work on diaspora support in https://fed.brid.gy/ first (which is close!), and less likely to do it here in bridgy.

bekopharm commented 4 years ago

API has landed in develop Announcement here