"2017-06-13T05:48:36.835737"^^ . . . . . "ODSProgrammersGuideOpenSocial" . . . "ODSProgrammersGuideOpenSocial" . "ccac9630a93721e5c964c11e4d2f42fe" . . . . "2017-06-13T05:48:36Z" . . . . "ODSProgrammersGuideOpenSocial" . . "%META:TOPICPARENT{name=\"Ods\"}%\n%ODSNAV%\n\n%TOC%\n\n---+ OpenSocial API support\n\n---++ APIs supported\n\nThe ODS package contains OpenSocial data APIs about people and activities. Also it implements a login compatible with GBase which can be used to perform OpenSocial API calls requiring authentication. The implementation code is located in the opensocial.sql file from the ods package.\n\n---++ Authentication\n\nThe authentication is compatible with GBase ClientLogin username/password authentication. \n\n---+++ REST API details\n * URI: http://<cname>:<port>/feeds/login\n\n---+++Parameters\n * Uname - the ODS user account \n * Passwd - password\n\n---+++Return\n\n * On success it will return:\n\nauth=NNNN \n\nwhere NNNN... is a security token and it matches a SID for login to ODS. \n\n * If authentication fails it will return:\n\nError=BadAuthentication\n\n\n---+++ Sample session\n\n\n$ curl -i \"http://localhost/feeds/login?Uname=test&Passwd=secret\"\nHTTP/1.1 200 OK\nServer: Virtuoso/05.00.3021 (Linux) i686-pc-linux-gnu VDB\nConnection: Keep-Alive\nDate: Wed, 14 Nov 2007 16:44:42 GMT\nAccept-Ranges: bytes\nContent-Type: text/plain; charset=\"ISO-8859-1\"\nContent-Length: 38\n\nauth=f305177cb1d9fbf409579250e944e980\n\n\n\n---++ People API\n\nThe people API is implemented as described in http://code.google.com/apis/opensocial/docs/gdata/people/developers_guide_protocol.html\nThe only difference is that personID is not a number but ODS user account.\n\n---+++ Sample Session\n\n---++++ Person data\n\n$ curl -i \"http://localhost:8890/feeds/people/demo\"\nHTTP/1.1 200 OK\nServer: Virtuoso/05.00.3021 (Linux) i686-pc-linux-gnu VDB\nConnection: Keep-Alive\nDate: Wed, 14 Nov 2007 16:49:27 GMT\nAccept-Ranges: bytes\nContent-Type: application/atom+xml; charset=\"ISO-8859-1\"\nContent-Length: 1018\n\n\nhttp://localhost:8890/feeds/people/demo\n2007-11-01T10:55:33.000+02:00\ndemo demo\n\n\n\n\n\n43.000000 25.000000\n\n\n\n\n\n+359887563204\n\n\n\n---++++ Friends\n\n$ curl -i \"http://localhost:8890/feeds/people/demo/friends\"\nHTTP/1.1 200 OK\nServer: Virtuoso/05.00.3021 (Linux) i686-pc-linux-gnu VDB\nConnection: Keep-Alive\nDate: Wed, 14 Nov 2007 16:50:14 GMT\nAccept-Ranges: bytes\nContent-Type: application/atom+xml; charset=\"ISO-8859-1\"\nContent-Length: 2104\n\n\nhttp://localhost:8890/feeds/people/demo/friends\n2007-11-14T18:50:14.000+02:00\ndemo's Friends\n\n\ndemo\n\nhttp://localhost:8890/feeds/people/dav\n2007-11-01T10:33:10.000+02:00\nWebDAV System Administrator\n\n\n\n\n\n\n\n\n\n\n\nhttp://localhost:8890/feeds/people/alice\n2007-11-02T18:01:04.000+02:00\nalice\n\n\n\n\n\n\n\n\n\n\n\n\n\n---++ Activities API\n\nThe activities API is implemented as described in http://code.google.com/apis/opensocial/docs/gdata/activities/developers_guide_protocol.html \n\n---+++ Creating entries\n\nTo create a new entry client must be authenticated first, then it issue a POST request to the activities feed an Atom based xml representation like :\n\n\n 2007-10-29T19:00:51.574Z\n \n I'm at work\n\n\n\nThe server will respond with entry containing atom:id element, below is a simple session for creating a new entry. The \"ODS Auth\" value is the sid value for the logged in user demo in ODS.\n\n\ncurl -i -d \"`cat act.xml`\" -H \"Authorization: ODS Auth=032a81d688a275910bd5ef31aff6d5ab\" -H \"Content-Type: application/atom+xml\" \"http://localhost:8890/activities/feeds/activities/user/demo/source/0\" \nHTTP/1.1 201 Created\nServer: Virtuoso/05.00.3021 (Linux) i686-pc-linux-gnu VDB\nConnection: Keep-Alive\nDate: Thu, 15 Nov 2007 12:25:10 GMT\nAccept-Ranges: bytes\nContent-Type: application/atom+xml; charset=\"ISO-8859-1\"\nContent-Length: 636\n\n\nhttp://localhost:8890/activities/feeds/activities/user/demo/source/0/10\n2007-11-15T14:25:10.000+02:00\n\nI'm at work\n\n\n2007-11-15T14:25:10.000+02:00\n\n\n\n---+++ Retrieving entries\n\nThe feed retrieval is just a GET against user activities feed, e.g.,\n\nGET http://localhost:8890/activities/feeds/activities/user/demo\n\nproduces a Atom feed with users activities listed\n\n---+++ Updating entries\n\nThe update is similar to entry creation, but in this case the HTTP method must be PUT and the Atom entry must contain a valid atom:id, for example:\n\n\n\n\n http://localhost:8890/activities/feeds/activities/user/demo/source/12/8\n 2007-10-27T19:41:51.574Z\n \n Another Edited title\n \n \n 2007-10-27T19:41:51.478Z\n\n\n\n---+++ Deleting entries\n\nIt's the same as update, just in this case the HTTP method is DELETE. \n\nIn cases where clients do not support PUT/DELETE , the X-HTTP-Method-Override HTTP header is supported; i.e., DELETE can be represented by :\n\nPOST /url HTTP/1.1\nX-HTTP-Method-Override: DELETE\n....\n\n\n\nCategoryODS CategoryVirtuoso CategoryOpenSocial CategoryWebSite\n\n%ODSCOPY%" . "2017-06-13T05:48:36Z" . . . . . . . "2017-06-13T05:48:36.835737"^^ . .