Skip to content

Piero Bosio Social Web Site Personale Logo Fediverso

Social Forum federato con il resto del mondo. Non contano le istanze, contano le persone

English speakers of the fedi.

Uncategorized
46 36 2

Gli ultimi otto messaggi ricevuti dalla Federazione
Post suggeriti
  • 0 Votes
    1 Posts
    0 Views
    As part of my book “ActivityPub: Programming for the Social Web“, I created a coding example to show how to program for the ActivityPub API. ap is a command-line client, written in Python, for doing basic tasks with ActivityPub.For example, you can log into a server using this command:ap login yourname@yourserver.exampleOnce you’re logged in, you can follow someone:ap follow other@different.exampleOr, you could post some content:ap create note --public "Hello, World"This isn’t enough to have a real social networking experience, but I think it’s pretty useful for testing an ActivityPub API server, or automating some repetitive tasks.I should note quickly here that not all ActivityPub servers support the ActivityPub API. It’s an under-utilized part of the ActivityPub standard. In particular, Mastodon, Threads, Flipboard, and other services don’t support the API. There’s a pretty good list of servers and clients that do support the API in this Codeberg issue.Suffice it to say, unless you’re actively working with one of those platforms, or you are writing your own, you’re not going to get much use out of ap. It will probably give you an error message like “No OAuth endpoints found” if it can’t use the service.Refreshing the projectI’ve never packaged ap for distribution; it was always supposed to be example code. But given the recent interest in the ActivityPub API, including the work going on in the ActivityPub API task force, I decided to get it into shape for installation by developers working on other apps. My friend Matthias Pfefferle of Automattic asked me about it when we were at FOSDEM this year, and I was embarrassed to see how difficult it was for him to use.So, I’ve made two big upgrades to the package. The first was actually making it a package, and distributing it! I upgraded the package management framework to uv, which seems like a good bet for now, and pushing the application to PyPI, the Python Package Index. It’s visible at https://pypi.org/project/activitypub-cli/ now. (Note: different package name from the command name! The PyPI “ap” package name was taken a while ago.)You can now install the application in one shot with this command on a computer that has Python on it:pipx install activitypub-cliYou can test that the application installed correctly in your path by running the version command:ap versionThat should show the same version as is currently on the pypi.org page for the project.The second change was implementing the current OAuth 2.0 profile best practices. I’ve upgraded the login flow so it tries a lot of different options for identifying itself to the server: CIMD, FEP d8c2, and Dynamic Client Registration. It tries to do them in preferential order; it uses permanent, global client identifiers before dynamic ones.Help me testI’m especially interested in testing this command-line client against other servers. If you’re developing an ActivityPub API server, please install the ap command and try it out against your (development!) server. Report a bug if it doesn’t work well, or send me a DM at @evanprodromou if it works OK. Given time, I think ap can be a useful first smoke test for ActivityPub API implementations.
  • 0 Votes
    31 Posts
    29 Views
    @francommit ah no, errore mio nello script per fortuna 😅 Ho qualche falso positivo con la musica ambient 🤔
  • 0 Votes
    1 Posts
    12 Views
    EU CRA: It's Later Than You Think, Time to Engineer Up! https://nxdomain.no/~peter/eu_cra_its_later_than_you_think_time_to_engineer_up.html (or tracked https://bsdly.blogspot.com/2025/09/eu-cra-its-later-than-you-think-time-to.html) for your weekend #sbom #development #software #engineering reading #cra #resilience
  • 0 Votes
    1 Posts
    16 Views
    Today on New Living Internet Translations:Do not post in anger, do not get mired in a flamewar because you’re mad online. If a comment is in your cause’s favor, then post it; if it’s not then for FFS stop. Anger can be replaced by cat pics, the maddest online can still learn to touch grass — but a banned account isn’t getting unbanned, and the people who blocked you aren’t gonna unblock. Watch yourself, bro. — Sun Tzu’s Art of Social Media#translation #localization #classicalchinese