Skip to content
0
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

fedi wiki

  1. Home
  2. Technical Discussion
  3. Multiple handles for Activity Intents

Multiple handles for Activity Intents

Scheduled Pinned Locked Moved Technical Discussion
fep3b86activitypub
34 Posts 3 Posters 47 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • julian@activitypub.spaceJ This user is from outside of this forum
    julian@activitypub.spaceJ This user is from outside of this forum
    julian@activitypub.space
    wrote last edited by
    #1

    Hi @benpate@mastodon.social I've got a question about Activity Intents!

    I'm implementing it now (as you noticed) and have run into an interesting issue. The wording of 3b86 suggests that the intents are distinct between users. That is, the end user inputs their handle, the handle is queried via webfinger, and supported Intents are returned.

    However, the intents themselves don't really distinguish between users.

    So I could have a localStorage session with multiple handles registered (e.g. julian@activitypub.space, nodebb@fosstodon.org), etc. — this works fine.

    But if I had two handles with the same domain, alice@example.social and bob@example.social, then my intents can't be targeted, can they... I just fire off the request (or rather, I have the end user's browser navigate) to the intent URL and whatever account is logged in will be the actor.

    Did I miss something, or was there a way to distinguish actors in Activity Intents?

    P.S. I find it highly amusing that you had to click through to activitypub.space to read my whole post, but because I don't support Activity Intents yet, you can't reply properly <img class="not-responsive emoji" src="https://activitypub.space/assets/plugins/nodebb-plugin-emoji/emoji/android/1f923.png?v=a8002752e25" title="🤣" />

    1 Reply Last reply
    0
    • benpate@mastodon.socialB This user is from outside of this forum
      benpate@mastodon.socialB This user is from outside of this forum
      benpate@mastodon.social
      wrote last edited by
      #2

      @julian Forst, the fun part. Yes, I did have to click through to read the whole article, then swipe back to my Mastodon client (I love you, Ivory) to actually reply.

      If only there were something to smooth out this UX 🙂

      1 Reply Last reply
      0
      • benpate@mastodon.socialB This user is from outside of this forum
        benpate@mastodon.socialB This user is from outside of this forum
        benpate@mastodon.social
        wrote last edited by
        #3

        @julian More importantly:

        You’re correct. There’s a bit of a problem if I’m visiting your website and I link two accounts from the same home server. Clicking either one will likely end up using whichever one I’m “signed into” at the moment.

        (Unless the server allows you to maintain multiple identities at the same time, but I don’t think that’s really a thing yet)

        Fortunately, this should be pretty rare outside of dev use cases. Most people have different identities on different servers.

        1 Reply Last reply
        0
        • benpate@mastodon.socialB This user is from outside of this forum
          benpate@mastodon.socialB This user is from outside of this forum
          benpate@mastodon.social
          wrote last edited by
          #4

          @julian

          Also, how far along are you? If you’d like, you’re welcome to use, fork, or be inspired by my JS library - https://github.com/EmissarySocial/camperjs

          I still need to do some better documentation for it, but let me know if you’re interested and I’ll get writing today.

          julian@activitypub.spaceJ 2 Replies Last reply
          0
          • benpate@mastodon.socialB benpate@mastodon.social

            @julian

            Also, how far along are you? If you’d like, you’re welcome to use, fork, or be inspired by my JS library - https://github.com/EmissarySocial/camperjs

            I still need to do some better documentation for it, but let me know if you’re interested and I’ll get writing today.

            julian@activitypub.spaceJ This user is from outside of this forum
            julian@activitypub.spaceJ This user is from outside of this forum
            julian@activitypub.space
            wrote last edited by julian@activitypub.space
            #5

            @benpate@mastodon.social focused on it today. Mostly been working on the handle registration and integration into existing action flows for guests.

            On the receiving side, I have my users' webfinger supporting the Object intent.

            Here are some screenshots 👀 and yes, I am pretending to be @pfefferle@mastodon.social because I don't have an account on mastodon.social LOL... I think at the end of the day the handle doesn't really matter if it's open-ended like that... like you said, you end up with whichever user is "signed in".

            2fa4b888-3ca7-4917-a84d-c798cd1704ad-image.jpeg

            f7c3258b-8022-4b01-ac47-220c8425084d-image.jpeg

            1 Reply Last reply
            0
            • benpate@mastodon.socialB This user is from outside of this forum
              benpate@mastodon.socialB This user is from outside of this forum
              benpate@mastodon.social
              wrote last edited by
              #6

              @julian @pfefferle

              It looks beautiful! Well done! I can't wait to try it out, as soon as you have it live 🙂

              And, I'd love to hear how it goes - if there are things we can make easier, document better, whatever. I still need to make an implementation guide, but just haven't been able to get it to the top of my stack.

              One thing I've been focused on recently is including a signup link in the workflow to help brand new people. Here's a silly demo of my latest: https://qwertylicious.dev/have-you-heard-of-qwertylicious

              1 Reply Last reply
              0
              • pfefferle@mastodon.socialP This user is from outside of this forum
                pfefferle@mastodon.socialP This user is from outside of this forum
                pfefferle@mastodon.social
                wrote last edited by
                #7

                @julian @benpate I somehow feel a bit honored 😅

                1 Reply Last reply
                0
                • julian@activitypub.spaceJ This user is from outside of this forum
                  julian@activitypub.spaceJ This user is from outside of this forum
                  julian@activitypub.space
                  wrote last edited by
                  #8

                  @benpate@mastodon.social well, the flow does work, although Mastodon's implementation is barebones.

                  They support create, but only with a single argument {content}. No {inReplyTo} which severely hampers utility since any content posted will be a top-level toot. This isn't a criticism of 3b86, it is just what it is <img class="not-responsive emoji" src="https://activitypub.space/assets/plugins/nodebb-plugin-emoji/emoji/android/1f604.png?v=c296be88e23" title="😄" />

                  I might just have to test NodeBB-to-NodeBB instead.

                  1 Reply Last reply
                  0
                  • benpate@mastodon.socialB This user is from outside of this forum
                    benpate@mastodon.socialB This user is from outside of this forum
                    benpate@mastodon.social
                    wrote last edited by
                    #9

                    @julian

                    You’re exactly right, and I don’t see it as a criticism at all. It’s an on-ramp that lets people explore slowly, then add capabilities gradually. It’s a chicken-and-egg problem.

                    I also want a “reply” activity as well, but I’m afraid nobody would support it yet.

                    So I look for {inReplyTo} in the create response to see if replies are possible, then register a “synthetic” activity for the application to discover. This lets me turn buttons on and off based on your servers abilities.

                    julian@activitypub.spaceJ 1 Reply Last reply
                    0
                    • benpate@mastodon.socialB benpate@mastodon.social

                      @julian

                      You’re exactly right, and I don’t see it as a criticism at all. It’s an on-ramp that lets people explore slowly, then add capabilities gradually. It’s a chicken-and-egg problem.

                      I also want a “reply” activity as well, but I’m afraid nobody would support it yet.

                      So I look for {inReplyTo} in the create response to see if replies are possible, then register a “synthetic” activity for the application to discover. This lets me turn buttons on and off based on your servers abilities.

                      julian@activitypub.spaceJ This user is from outside of this forum
                      julian@activitypub.spaceJ This user is from outside of this forum
                      julian@activitypub.space
                      wrote last edited by
                      #10

                      @benpate@mastodon.social "You’re exactly right" triggered <img class="not-responsive emoji" src="https://activitypub.space/assets/plugins/nodebb-plugin-emoji/emoji/android/1f631.png?v=c296be88e23" title="😱" />

                      I think it's wise to be hesitant about it. I think a Create intent with inReplyTo does already mean "Reply", so right now I don't see any reason to introduce a new intent.

                      I had a similar thought about unvoting, which is something NodeBB does but isn't captured by ActivityStreams. We had to map it to Undo(Vote). So I was wondering if Undo would make sense in 3b86, but the Undo Intent already exists and would be more cromulent.

                      1 Reply Last reply
                      0
                      • benpate@mastodon.socialB This user is from outside of this forum
                        benpate@mastodon.socialB This user is from outside of this forum
                        benpate@mastodon.social
                        wrote last edited by
                        #11

                        @julian

                        I know.. agreement on the Fediverse is so rare, it’s almost scary 😉

                        Yeah, Undo sounds like it makes sense in your case. I didn’t think of any in the beginning, so just overlooked it.

                        One complicating factor is in showing the “state” of things in the remote site - we’d need a way to know that you voted for something first, so then we could undo it.

                        But yeah, let’s add that into 3b86 as well. What kinds of parameters would you want to pass? Or, would you just want to write a PR?

                        julian@activitypub.spaceJ 1 Reply Last reply
                        0
                        • benpate@mastodon.socialB benpate@mastodon.social

                          @julian

                          I know.. agreement on the Fediverse is so rare, it’s almost scary 😉

                          Yeah, Undo sounds like it makes sense in your case. I didn’t think of any in the beginning, so just overlooked it.

                          One complicating factor is in showing the “state” of things in the remote site - we’d need a way to know that you voted for something first, so then we could undo it.

                          But yeah, let’s add that into 3b86 as well. What kinds of parameters would you want to pass? Or, would you just want to write a PR?

                          julian@activitypub.spaceJ This user is from outside of this forum
                          julian@activitypub.spaceJ This user is from outside of this forum
                          julian@activitypub.space
                          wrote last edited by
                          #12

                          > @benpate@mastodon.social said:
                          >
                          > But yeah, let’s add that into 3b86 as well. What kinds of parameters would you want to pass? Or, would you just want to write a PR?

                          No, I think we'd want to KISS. If you upvote something with your fediverse account, and it doesn't "show" on the site that you upvoted, I think that's ok.

                          The "you're exactly right" thing was an LLM joke <img class="not-responsive emoji" src="https://activitypub.space/assets/plugins/nodebb-plugin-emoji/emoji/android/1f606.png?v=0e8330245d8" title="😆" />

                          Okay. One-way 3b86 support is pushed to activitypub.space. Excuse the occasional broken language string, that'll get fixed up later. NodeBB will now let you register handles and can redirect to supported Like, Dislike, Create, and Follow handlers. @benpate@mastodon.social if you could give it a whirl.

                          The other direction, there's almost no support right now. We just expose Object intent, but I will flesh out the same intents soon, so NodeBB users can consume Activity Intents too.

                          1 Reply Last reply
                          0
                          • julian@activitypub.spaceJ This user is from outside of this forum
                            julian@activitypub.spaceJ This user is from outside of this forum
                            julian@activitypub.space
                            wrote last edited by
                            #13

                            @benpate@mastodon.social in 4.6 Create Intent, can you add a new parameter {audience}? I will use it to target a specific category/community for threadiverse posting.

                            1 Reply Last reply
                            0
                            • benpate@mastodon.socialB This user is from outside of this forum
                              benpate@mastodon.socialB This user is from outside of this forum
                              benpate@mastodon.social
                              wrote last edited by
                              #14

                              @julian For sure. I'm probably tied up through the afternoon, but will put that together soon.

                              1 Reply Last reply
                              0
                              • benpate@mastodon.socialB This user is from outside of this forum
                                benpate@mastodon.socialB This user is from outside of this forum
                                benpate@mastodon.social
                                wrote last edited by
                                #15

                                @julian This is fantastic. You're awesome, Julian!

                                I'll try to take a look at this tonight/tomorrow.

                                Once you're at a stopping point, would it be possible for you to list out the intents you publish and receive? I'd love to include that in the Implementations section at the bottom of the document.

                                julian@activitypub.spaceJ 1 Reply Last reply
                                0
                                • benpate@mastodon.socialB benpate@mastodon.social

                                  @julian

                                  Also, how far along are you? If you’d like, you’re welcome to use, fork, or be inspired by my JS library - https://github.com/EmissarySocial/camperjs

                                  I still need to do some better documentation for it, but let me know if you’re interested and I’ll get writing today.

                                  julian@activitypub.spaceJ This user is from outside of this forum
                                  julian@activitypub.spaceJ This user is from outside of this forum
                                  julian@activitypub.space
                                  wrote last edited by
                                  #16

                                  @benpate@mastodon.social too bad I didn't know about camperjs and hand rolled my own dialogs.

                                  Just as well, I'd want them to look like my own dialogs anyway 😁

                                  1 Reply Last reply
                                  0
                                  • benpate@mastodon.socialB This user is from outside of this forum
                                    benpate@mastodon.socialB This user is from outside of this forum
                                    benpate@mastodon.social
                                    wrote last edited by
                                    #17

                                    @julian Yeah, it’s probably a good learning experience, too.

                                    Camper doesn’t do the dialogs, though. It’s behind the scenes turning buttons on and off based on what it can find in the WebFinger results.

                                    It might be useful to look at - and certainly feel free to steal any good ideas for your own code.

                                    1 Reply Last reply
                                    0
                                    • benpate@mastodon.socialB benpate@mastodon.social

                                      @julian This is fantastic. You're awesome, Julian!

                                      I'll try to take a look at this tonight/tomorrow.

                                      Once you're at a stopping point, would it be possible for you to list out the intents you publish and receive? I'd love to include that in the Implementations section at the bottom of the document.

                                      julian@activitypub.spaceJ This user is from outside of this forum
                                      julian@activitypub.spaceJ This user is from outside of this forum
                                      julian@activitypub.space
                                      wrote last edited by
                                      #18

                                      > @benpate@mastodon.social said:
                                      >
                                      > Once you're at a stopping point, would it be possible for you to list out the intents you publish and receive?

                                      NodeBB as a home server will support Object, Create, Like, Dislike, and Follow.

                                      As a client, we have buttons for Create (topic creation and reply), Like/Dislike (upvote and downvote), and Follow.

                                      1 Reply Last reply
                                      0
                                      • benpate@mastodon.socialB This user is from outside of this forum
                                        benpate@mastodon.socialB This user is from outside of this forum
                                        benpate@mastodon.social
                                        wrote last edited by
                                        #19

                                        @julian I'm writing this up now. Do you also use the {context} property? Should I include this as well?

                                        julian@activitypub.spaceJ 1 Reply Last reply
                                        0
                                        • benpate@mastodon.socialB benpate@mastodon.social

                                          @julian I'm writing this up now. Do you also use the {context} property? Should I include this as well?

                                          julian@activitypub.spaceJ This user is from outside of this forum
                                          julian@activitypub.spaceJ This user is from outside of this forum
                                          julian@activitypub.space
                                          wrote last edited by
                                          #20

                                          @benpate@mastodon.social it wouldn't hurt, but no, I don't use it. However, I can use it! So it would be helpful <img class="not-responsive emoji" src="https://activitypub.space/assets/plugins/nodebb-plugin-emoji/emoji/android/1f604.png?v=8bcefe1b72a" title="😄" />

                                          When you reply to a topic, it's easiest to reply to a specific post, so that's why I'm using {inReplyTo}. When composing a new topic, {audience} is used to target the category.

                                          Replying to a topic isn't really supported on the fediverse (usually you just reply to the root-level post), but it is supported in NodeBB.

                                          1 Reply Last reply
                                          0

                                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                          With your input, this post could be even better 💗

                                          Register Login
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          Powered by NodeBB Contributors
                                          • First post
                                            Last post