Peter Robinett

Additional Forms of Interaction

In addition to the API outlined above there are several API-like URLs that can be used to retrieve data from anyMeta.
In general they should be used as a complement, not a replacement, for the API, but naturally usage will vary depending on what you are trying to achieve. As many of the URLs are provided by anyMeta modules which are common, but not universal, you need to first check whether the anyMeta site you're working with has the module installed. Of course, simply making a request to one of the URLs and looking for a 404 response is the easiest way. //thing_id Any Thing in an anyMeta site can be requested by using the URL pattern Like with the API, a symbolic name may also be used in place of a numeric thing_id. These URLs are not actual destinations or representations of Things but instead route the requester to URLs that do. The response will be an HTTP response with the 303 See Other status and provide a Location header specifying a URL that fulfills the requester's requirements. Requirements are given via the Accept request header. The following table outlines what sort of response Location and content can be expected given certain Accept headers. Accept Header Redirects To Description anyMeta Module text/html;application/xhtml+xml;*/* /page/:/person/:/search/:/forum/:/note/:id HTML representation (depending on thing type) Page application/json /thing/:/json Full JSON dump ThingDump application/x-php-serialized /thing/:/php Full PHP-serialized dump ThingDump application/x-anymeta-thing+xml /thing/:id Full XML dump ThingDump application/atom+xml /atom/:id Atom XML of thing (atom ) Atom application/rdf+xml /foaf/:id Friend-of-a-friend XML representation of user Contact image/* (literal! image/jpeg wont work) /picture/:id Redirects to image URL age text/json+xmpp-pubsub-uri /pubsub/:id XMPP URI of pubsub node for subscribing to thing updates PubSub For instance: $ curl -D - -A 'Accept: application/atom+xml' HTTP/1.1 303 See Other Location: Other URLs with thing representations The following are also valid for all things, but cannot be requested through an Accept header on the resource_uri. URI Description Response Content Type anyMeta Module /rdf/:id RDF XML representation application/rdf+xml RDF /atom/feed/:id Atom feed of the thing. The thing needs to be a LISTPUBLISH or a SET. application/atom+xml Atom /person/feed/:id Atom feed of the activity stream of the person. application/atom+xml Notifications /attachment/:id For things of type 'attachment', serves the raw file as download. depending on thing Page /visualize/:id Flash visualization of the thing and its network text/html Visualize /changes/:id Change log of the history of a thing. Only visible when you have edit permissions on the thing. text/html Page /browse/:id Semantic browser, showing incoming and outgoing edges for the thing. text/html Browser /dump/:id Shows a php “var_dump” dump of the public thing record. text/html ThingDump /page/:/:lang Request the thing page in a specific language text/html Page /edit/:id Edit the thing text/html Edit /edit/:/:lang Edit a language version of the thing text/html Edit anyMeta's XMPP nodes Every anyMeta website which is connected to the Open-CI network also has XMPP connectivity. anyMeta implements XEP-60, publish/subscribe, which generates notifications to certain nodes whenever somethings happens on a website. When subscribing, you need a service and a node. The service of an anyMeta website is usually the hostname with 'www' replaced by 'pubsub': →, etc. The nodes, and their explanations, are listed in the table below. Node Get a notification whenever... Item content anyMeta Module (empty string) any other pubsub node would get a notification. varied PubSub /:id this thing has been updated. thing atom representation PubSub kind/:kind a thing with given kind has been updated. thing atom representation PubSub type/:type a thing with given kind has been updated. thing atom representation PubSub status somebody sets his status xml Status activity anybody produces an activity atom entry with activitystreams extension Notifications activity/:id user :id receives an activity atom entry with activitystreams extension Notifications ikcam/:id ikcam :id makes a picture xml: <rsp>...</rsp> IkCam ikcam/by_event/:id an ikcam connected to event :id has made a picture xml: <rsp>...</rsp> IkCam status/:id user :id has updated his status xml: <rsp>...</rsp> Status status/by_event/:id a user participating in event :id has updated his status xml: <rsp>...</rsp> Status vote/:id a user has voted on question :id xml: <rsp>...</rsp> IkPoll race/:id a user has completed the alleycat race :id xml: <rsp>...</rsp> Alleycat race a user has completed an alleycat race. xml: <rsp>...</rsp> Alleycat regdesk a badge has been printed out for a user. xml: <rsp>...</rsp> Badge