Skip to content

simpleweb/portablecontacts-unofficial

 
 

Repository files navigation

This is a stand-in, proxy PortableContacts server for sites that don't implement
PortableContacts themselves. It currently has implementations for Facebook and
Twitter, served at these endpoints:

http://facebook-poco.appspot.com/
http://twitter-poco.appspot.com/

Feel free to add more!

Background on PortableContacts:
http://portablecontacts.net/
http://wiki.portablecontacts.net/

Test client and validator:
http://www.plaxo.com/pdata/testClient

Twitter and Facebook support OAuth, which you'll need to use for users who don't
make their data public. If you obtain an OAuth access token from Twitter or
Facebook and include it in a request to this provider, it will be used to sign
and authorize the underlying requests to those providers. See the demos on
https://facebook-poco.appspot.com/ and https://twitter-poco.appspot.com/ for
examples.

I wish there was a Python server library for any of the components here,
e.g. XRD/XRDS-Simple! I only found client libraries though:
http://mrtopf.de/blog/data-portability/announcing-pydataportability-01-technical/
https://github.com/gwachob/pydiscovery

To use this in a PortableContacts client, you'll need to hard-code exceptions
for the facebook.com and twitter.com hosts and redirect PortableContacts HTTP
requests to the corresponding endpoint above.

Note the app.yaml.* files, one for each App Engine app id. To work on or deploy
a specific app id, symlink app.yaml to its app.yaml.xxx file. Likewise, if you
add a new site, you'll need to add a corresponding app.yaml.xxx file.

The tests require the App Engine SDK and python-mox.

Deploy commands:
rm -f app.yaml && ln -s app.yaml.twitter app.yaml && \
  ~/google_appengine/appcfg.py update .
rm -f app.yaml && ln -s app.yaml.facebook app.yaml && \
  ~/google_appengine/appcfg.py update .

About

A stand-in, proxy PortableContacts server for sites like Facebook and Twitter that don't implement it themselves.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published