# ActivityPub Plugin

**URL:** https://meta.discourse.org/t/activitypub-plugin/266794
**Category:** Plugin
**Tags:** experimental, activitypub
**Created:** [May 31, 2023, 5:21pm UTC](https://meta.discourse.org/t/activitypub-plugin/266794 "2023-05-31T17:21:52Z")
**Posts on this page:** 20
**Page:** 14

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [July 19, 2024, 8:02am UTC](https://meta.discourse.org/t/activitypub-plugin/266794/265 "2024-07-19T08:02:19Z")

</div>

> [@mynoxin](#):
>
> I deleted the Postings on Discourse, because i Just tested it, but the postings are still online in Mastodon. So I thought i could delete the account to delete the content from Mastodon as well.

When you delete an AP post on Discourse we send out a Delete for the content to Mastodon. It’s up to them to process it. That should be working, so if you can show me some specific examples I can try to see where the delete flow is not working as expected (i.e. whether it’s on Discourse or Mastodon’s side).

> [@mynoxin](#):
>
> And when I can’t delete it, I can not use this handle with other categories in the future. May I want to change some categories in the future but I can not use it with that handle which has xx followers. SO I need to create a new handle and everyone has to follow it again.

The reason this is the case is because Mastodon does not currently allow handles to change. This is the root cause of the issue you’re experiencing. I have been advocating for this to be the case for some time and have an outstanding PR for Mastodon. When that gets merged you’ll be able to resolve this by changing the handle in Discourse.

[https://github.com/mastodon/mastodon/pull/30361](https://github.com/mastodon/mastodon/pull/30361)

> [@mynoxin](#):
>
> I can’t see any advantages of only diasabling a handle I dont’t need anymore.

The utility of disabling a handle is that no incoming content to that handle will be processed and it will not send out any new content. It’s up to the other platforms what they do with your existing content, including how they process a Delete activity we send them.

> [@mynoxin](#):
>
> But thats what I want

Understood. We may add this in the future.

---

<div class="post-metadata">

### Author: ![mynoxin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mynoxin/32/432934_2.png) [@mynoxin](https://meta.discourse.org/u/mynoxin)
#### Post date: [July 19, 2024, 8:13am UTC](https://meta.discourse.org/t/activitypub-plugin/266794/266 "2024-07-19T08:13:15Z")

</div>

> [@angus](#):
>
> When you delete an AP post on Discourse we send out a Delete for the content to Mastodon. It’s up to them to process it. That should be working, so if you can show me some specific examples I can try to see where the delete flow is not working as expected (i.e. whether it’s on Discourse or Mastodon’s side).

Thats the handle and it’s disabled and not active: [uebergabe@community.uebergabe.de](mailto:uebergabe@community.uebergabe.de)

Now I understand… I made some test-postings and he did not use “[uebergabe@community.uebergabe.de](mailto:uebergabe@community.uebergabe.de)”, it used “[christian@community.uebergabe.de](mailto:christian@community.uebergabe.de)” to post it. But I never created this Actor on Discourse.  
Hm.

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [July 19, 2024, 8:18am UTC](https://meta.discourse.org/t/activitypub-plugin/266794/267 "2024-07-19T08:18:17Z")

</div>

> [@mynoxin](#):
>
> Now I understand… I made some test-postings and he did not use “[uebergabe@community.uebergabe.de](mailto:uebergabe@community.uebergabe.de)”, it used “[christian@community.uebergabe.de](mailto:christian@community.uebergabe.de)” to post it. But I never created this Actor on Discourse.

That is expected if the “Full Post” setting is on (which it must be in your case). The content is posted under the name of the user’s Actor (i.e. you in this case). If you want to post under the name of the category actor you should use “First Post”. In that case only the first post of each topic is published. You can see an example of the “First Post” approach in this video:

> [@Publishing posts to Mastodon](https://meta.discourse.org/t/publishing-posts-to-mastodon/314609):
>
> This topic covers publishing posts from Discourse to Mastodon with the Discourse ActivityPub Plugin, and follows on from [Setting up an ActivityPub Actor](https://meta.discourse.org/t/how-to-set-up-an-activitypub-actor/314578) and [Following an ActivityPub Actor](https://meta.discourse.org/t/how-to-follow-an-activitypub-actor/314580). If you’re not sure what this means, head on over to the [Discourse ActivityPub Plugin](https://meta.discourse.org/t/activitypub-plugin/266794) topic first. Instructions To publish to Mastodon: [Set up an actor](https://meta.discourse.org/t/how-to-set-up-an-activitypub-actor/314578) for the Category or Tag you want to publish content to Mastodon. Copy the “handle” of the Actor. Look up the handle on Mastodon and follow it. [note] mar…

---

<div class="post-metadata">

### Author: ![mynoxin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mynoxin/32/432934_2.png) [@mynoxin](https://meta.discourse.org/u/mynoxin)
#### Post date: [July 19, 2024, 8:25am UTC](https://meta.discourse.org/t/activitypub-plugin/266794/268 "2024-07-19T08:25:00Z")

</div>

Yes, thats the case. Thanks for helping me. Of course I’ve seen the videos and it made some things very clear to me and helped to configure it. Thanks for that!  
So of course I can’t delete these created handles I never created actively.

When I think about it, I do not feel well about it… When everyone is using it like me, there are tons of content snippets from persons which can never be deleted. It’s filling up the internet with less sense, or am I not right with it?

Not your fault, just try to understand what will happen, if everyone is dumb as me and fills up the internet with test-postings, that are never be deleted 😃

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [July 19, 2024, 8:34am UTC](https://meta.discourse.org/t/activitypub-plugin/266794/269 "2024-07-19T08:34:04Z")

</div>

> [@mynoxin](#):
>
> So of course I can’t delete these created handles I never created actively.

You can delete the posts though. When you delete a post, Discourse sends out a Delete to Mastodon and Mastodon should delete its copy. If that didn’t work, try restoring the post and deleting it again. Check the logs when you do this.

> [@mynoxin](#):
>
> It’s filling up the internet with less sense, or am I not right with it?

As I said, you should be able to delete the posts themselves, but besides that I honestly wouldn’t worry about it too much. Mastodon is a stream-based platform. Your test posts will quickly get lost in the stream of content. Moreover was anyone else (besides you) actually following your actor at the time? I have hundreds of test posts in the fediverse and it’s had no impact at all 🙂

But let me know how you go trying to delete the posts.

---

<div class="post-metadata">

### Author: ![mynoxin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mynoxin/32/432934_2.png) [@mynoxin](https://meta.discourse.org/u/mynoxin)
#### Post date: [July 19, 2024, 9:27am UTC](https://meta.discourse.org/t/activitypub-plugin/266794/270 "2024-07-19T09:27:00Z")

</div>

I restored the posts and deleted them again.  
They are visible on Mastodon. Whwn i Click, it refers me to the deleted post on discourse.

 ![3AE8FB75-0201-4B5F-A66E-A8A75D307773_4_5005_c](https://global.discourse-cdn.com/meta/original/4X/d/9/1/d9125e118e413c96d35779af8bde291cfbdcd969.jpeg)

---

<div class="post-metadata">

### Author: ![mcdanlj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcdanlj/32/131829_2.png) [@mcdanlj](https://meta.discourse.org/u/mcdanlj)
#### Post date: [July 19, 2024, 12:50pm UTC](https://meta.discourse.org/t/activitypub-plugin/266794/271 "2024-07-19T12:50:39Z")

</div>

> [@angus](#):
>
> Federating everything on a Discourse through a single Actor will likely always be a niche use case.

Why _niche?_

Of the Discourse communities I participate in, I can think of only three where I would want to follow some categories, but would _not_ want to follow the Application actor for the entire Discourse.

I have an RSS reader, and I follow whole sites via RSS; ActivityPub would be a better experience, particularly for responding.

Is the Application actor difficult or merely low priority?

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [July 19, 2024, 1:15pm UTC](https://meta.discourse.org/t/activitypub-plugin/266794/272 "2024-07-19T13:15:27Z")

</div>

Following an entire instance means you’re getting every single post on that instance appear in your mastodon feed as one continuous stream. Unless the instance doesn’t have much activity, I would wager that’s going to be a niche use case. Perhaps I’ll be proven wrong, but just on the face of it, it seems implausible to me that’s going to be popular.

> [@mynoxin](#):
>
> I restored the posts and deleted them again.

Did you have a look at the logs? Let’s confirm we’re sending the delete activity to Mastodon.

---

<div class="post-metadata">

### Author: ![mcdanlj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcdanlj/32/131829_2.png) [@mcdanlj](https://meta.discourse.org/u/mcdanlj)
#### Post date: [July 19, 2024, 2:15pm UTC](https://meta.discourse.org/t/activitypub-plugin/266794/273 "2024-07-19T14:15:23Z")

</div>

> [@angus](#):
>
> Following an entire instance means you’re getting every single post on that instance appear in your mastodon feed as one continuous stream

There is, I think, a really long tail of low-traffic-but-definitely-active Discourse instances that still have multiple categories. Obviously meta isn’t one of these small instances. 😁 But of the three Discourse instances that I personally administer, one has such high traffic that I wouldn’t even put many of its _categories_ into my Mastodon feed, and two have sufficient low rates of traffic that I’d definitely prefer to follow the whole site. There are others of which I’m a member where I’d also follow the whole site if I had the option.

**Not** asking you to change priorities here. Just sharing the alternative perspective.

---

<div class="post-metadata">

### Author: ![riking](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/riking/32/170938_2.png) [@riking](https://meta.discourse.org/u/riking)
#### Post date: [July 23, 2024, 3:25pm UTC](https://meta.discourse.org/t/activitypub-plugin/266794/274 "2024-07-23T15:25:48Z")

</div>

Is this supposed to be active and functioning on Meta?

Visiting [Preparing your community for behind-the-scenes header changes - Announcements - Discourse Meta](https://meta.discourse.org/ap/object/617cb9558f3f81a3eb7dbe9ec0ffb79d) gives me a “bad request” and the post can’t be fetched from my instance.

Human browser requests to a AP object should be redirected to the human view ([Preparing your community for behind-the-scenes header changes](https://meta.discourse.org/t/preparing-your-community-for-behind-the-scenes-header-changes/316549)).

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [July 23, 2024, 4:37pm UTC](https://meta.discourse.org/t/activitypub-plugin/266794/275 "2024-07-23T16:37:33Z")

</div>

> [@riking](#):
>
> Is this supposed to be active and functioning on Meta?

Yup, for example in the topic you linked.

> [@riking](#):
>
> Human browser requests to a AP object should be redirected to the human view

That’s a “feature” (of sorts) you see in some AP platforms. I’d note that the [ActivityPub spec](https://www.w3.org/TR/activitypub/#retrieving-objects) provides:

> The HTTP GET method may be dereferenced against an object’s `id` property to retrieve the activity. Servers _MAY_ use HTTP content negotiation as defined in [[RFC7231](https://www.w3.org/TR/activitypub/#bib-RFC7231)] to select the type of data to return in response to a request, but _MUST_ present the ActivityStreams object representation in response to `application/ld+json; profile="https://www.w3.org/ns/activitystreams"` , and _SHOULD_ also present the ActivityStreams representation in response to `application/activity+json` as well. The client _MUST_ specify an `Accept` header with the `application/ld+json; profile="https://www.w3.org/ns/activitystreams"` media type in order to retrieve the activity.

See also “Serialization” in [Activity Streams 2.0](https://www.w3.org/TR/activitystreams-core/#syntaxconventions).

The AP plugin currently requires you to send an `Accept` header with either “application/ld+json” or “application/activity+json” to retrieve any object (i.e. Activity, Note etc). We may support what you’re referring to in the future, but it’s somewhat of a “power user” feature of specific platforms.

---

<div class="post-metadata">

### Author: ![riking](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/riking/32/170938_2.png) [@riking](https://meta.discourse.org/u/riking)
#### Post date: [July 23, 2024, 5:18pm UTC](https://meta.discourse.org/t/activitypub-plugin/266794/276 "2024-07-23T17:18:11Z")

</div>

When I’m viewing a post in my client, there’s a prominent button Share ➡ Open in browser that opens the object URL 🙂

 ![The image shows a list of sharing options, including "Share," "Mention," "Open in browser," "Open with another account," "Copy link," and "Copy"](https://global.discourse-cdn.com/meta/original/4X/b/6/7/b678fe9e4bfce78f6c080d06fc7ebb1961c039c5.png)

The fetch error page:

 ![The search result page for Fedilab, with the Meta URL in the search bar. The Messages results tab is active and a notification stating "No message to display" is shown in the result pane.](https://global.discourse-cdn.com/meta/original/4X/f/d/1/fd143166062a9cc572b1ac69b499fed23bd8d335.png)

Do you want me to ask my admin for logs relating to the fetch?

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [July 23, 2024, 7:08pm UTC](https://meta.discourse.org/t/activitypub-plugin/266794/277 "2024-07-23T19:08:53Z")

</div>

I see! What client are you using?

Object ids are not really meant to be used as sharable/copiable URLs by an end user in a client. We make it available in the ActivityPub status modal for development/debugging purposes. Your client should be using the `url` attribute which we serialize on the object. For example if you visit the topic you linked to on mastodon.social ([here](https://mastodon.social/@announcements@meta.discourse.org/112796487295951452)) and click “Copy link to status” in the toot menu you’ll find it’s a direct link to the topic on meta. Standard Mastodon uses the object `url` for the purpose of, well, sharing the url 🙂

> [@riking](#):
>
> Do you want me to ask my admin for logs relating to the fetch?

It will be because the Accept header is not being set. I am open to tweaking things (i.e. resolving object id requests with the wrong headers to the connected model url), but at the moment I think the folks making your client may need to bring it up to spec (i.e. use the object `url` instead of the object `id` as a user-facing URL).

---

<div class="post-metadata">

### Author: ![mcdanlj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcdanlj/32/131829_2.png) [@mcdanlj](https://meta.discourse.org/u/mcdanlj)
#### Post date: [July 23, 2024, 10:01pm UTC](https://meta.discourse.org/t/activitypub-plugin/266794/278 "2024-07-23T22:01:42Z")

</div>

> [@angus](#):
>
> Yup, for example in the topic you linked.

I’ve been following `@feature@meta.discourse.org` and `@announcements@meta.discourse.org` in Mastodon since very shortly after they were announced, and I quickly quit getting updates. I thought it was because the plugin was removed from meta, shrugged, and moved on.

But if it’s actually still active, then I’m wondering what the problem federating with `social.makerforums.info` is. 🤔

---

<div class="post-metadata">

### Author: ![riking](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/riking/32/170938_2.png) [@riking](https://meta.discourse.org/u/riking)
#### Post date: [July 24, 2024, 4:32am UTC](https://meta.discourse.org/t/activitypub-plugin/266794/279 "2024-07-24T04:32:59Z")

</div>

The server is Mastodon (glitch-soc). I asked the admin if they had any relevant logs.

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [July 24, 2024, 7:30am UTC](https://meta.discourse.org/t/activitypub-plugin/266794/280 "2024-07-24T07:30:59Z")

</div>

> [@mcdanlj](#):
>
> I’ve been following `@feature@meta.discourse.org` and `@announcements@meta.discourse.org` in Mastodon since very shortly after they were announced, and I quickly quit getting updates

I don’t see you in the followers list of either category:

- [`https://meta.discourse.org/ap/local/actor/2/followers`](https://meta.discourse.org/ap/local/actor/2/followers)
- [`https://meta.discourse.org/ap/local/actor/1/followers`](https://meta.discourse.org/ap/local/actor/1/followers)

There were a lot of changes early on in the life of the plugin, so apologies if one of those changes removed your follow. Please try following again and see how you go.

> [@riking](#):
>
> The server is Mastodon (glitch-soc)

Is it a fork of glitch-soc? I don’t see the share modal you’ve screenshotted in [their code](https://github.com/glitch-soc/mastodon). But yes, happy to work with your server admin to clarify things further if need be.

---

<div class="post-metadata">

### Author: ![mcdanlj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcdanlj/32/131829_2.png) [@mcdanlj](https://meta.discourse.org/u/mcdanlj)
#### Post date: [July 24, 2024, 10:45am UTC](https://meta.discourse.org/t/activitypub-plugin/266794/281 "2024-07-24T10:45:28Z")

</div>

> [@angus](#):
>
> Please try following again and see how you go.

I have un-followed and re-followed from the Mastodon side, and I’ll see whether that changes my feed.

However, I see an inconsistency. The follower list displays show the wrong handle for me, missing the `social.` in the domain.

 ![image](https://global.discourse-cdn.com/meta/original/4X/c/9/b/c9b7e4cc57034eef59563591b04eb941f95190e5.png)

The links show `https://social.makerforums.info/users/mcdanlj` which correctly includes the domain, but someone who tried to enter what they see in this follower list in order to search for me or follow me would fail.

I haven’t found anywhere on the Mastodon side that trims the subdomain.

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [July 24, 2024, 11:47am UTC](https://meta.discourse.org/t/activitypub-plugin/266794/282 "2024-07-24T11:47:45Z")

</div>

Good catch @mcdanlj. I’ll investigate that soon. Thanks.

---

<div class="post-metadata">

### Author: ![Thomas\_Rother](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/thomas_rother/32/423597_2.png) [@Thomas\_Rother](https://meta.discourse.org/u/Thomas_Rother)
#### Post date: [July 25, 2024, 7:45pm UTC](https://meta.discourse.org/t/activitypub-plugin/266794/283 "2024-07-25T19:45:20Z")

</div>

I just upgraded from 3.3.0.beta4 to latest Discourse 3.3.0.beta5-dev together with ActivityPub plugin [Allow changes of post owner on unpublished local topics (#109) · discourse/discourse-activity-pub@3a6512d · GitHub](https://github.com/discourse/discourse-activity-pub/commit/3a6512d0560211b93f022a27ed7276024d0020dc).

Although the plugin is set as active, the setting options in the categories are gone. ??

---

<div class="post-metadata">

### Author: ![pmusaraj](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pmusaraj/32/119489_2.png) [@pmusaraj](https://meta.discourse.org/u/pmusaraj)
#### Post date: [July 25, 2024, 8:55pm UTC](https://meta.discourse.org/t/activitypub-plugin/266794/284 "2024-07-25T20:55:36Z")

</div>

The settings have been moved into the admins \> plugins UI. Try under `/admin/plugins/ap/actor`.

[Previous page](https://meta.discourse.org/t/activitypub-plugin/266794.md?page=13)

[Next page](https://meta.discourse.org/t/activitypub-plugin/266794.md?page=15)
