6 ms·
Show HN: Me API – turn yourself into an open API
- danfang 11y agoHey guys! Thanks for checking out my little project. Some background info: I was reflecting the other day on just how proprietary our online information seems. Maybe not proprietary, but definitely disjointed. We go to Twitter for social blurbs and trends, we go to Facebook to see our friends, Pinterest to see our interests, Github to see our code, etc etc. I thought there was a big gap in getting access control to this information and that there are extremely powerful ways we can leverage all of this information. This essentially bootstraps the entire process of going through each social network's API and puts it in your hands. I think some interesting interfaces could come out of such an idea, although I'm not sure how well my implementation has allowed for that. All in all, please give your feedback. I want to know areas where this is lacking, where you might see hidden opportunities - any reflection is appreciated!
- ratfacemcgee 11y agocan you give an example where this would be useful besides if you were building a website?
- danfang 11y agoI think getting to be the authority on your information would be awesome. If people hooked into your API instead of vice versa, you rarely have to update your information in more than one place. Address changes, place of work, DOB (?) - maybe these could all be achieved through an API for yourself. There's a possibility for analytics that pulls data from all sources instead of just once (health analytics, IoT data). There's a possibility for communication -- instead of email, maybe people could communicate through these endpoints. All of these are just stubs of ideas, but you have a very good point. The largest use case is probably in visually representing your online data.
- ratfacemcgee 11y agoperhaps if you wanted to create a hybrid social network? say a user signs up, but all of their content is in one place?
- po 11y agoVery cool space to play around in. You should check out Naveen's personal site (foursquare founder) as he was playing around with something similar for his own data a few years ago: http://api.naveen.com/ http://api.naveen.com/
- danfang 11y agoI saw that and was glad that people supported a similar idea. I think this is better though - it opens up that portal for everyone. It also opens it up in a way that people in the open source community can build on it (extra modules that is).
- icebraining 11y agoThere was also the Locker Project (http://lockerproject.org/ http://lockerproject.org/), which I was keen to use and contribute to, but it stalled years ago.
- emilburzo 11y agoDoes it work for you? I'm getting an 'Application Error' on the endpoints
- jpatters 11y agoThis is awesome. I started working on something very similar about a year and a half ago (but of course dropped the ball on it) that was based on oauth2.0 but followed a model somewhat reverse of what we are used to. It setup the user as the oauth provider so they could control the permissions when authenticating with a "social service". The social service would request what permissions it required from you and then retrieve the information you allowed it. It would also be required that any information that you publish to the site be published back to your repository. ie. you post an image to Instagram (assuming Instagram would ever implement this) and Instagram would also save it to your repository. It was a bit overreaching and ultimately why I dropped it. I was struggling with the looming "adoption" issues of how do I get a social service to implement this. But if it was combined with something like this, that piggybacks on the way things are today adoption by users wouldn't require adoption by social services and change could be pushed for more gradually. Awesome work. I look forward to setting it up and trying it out.
- win_ini 11y agoI think this is a fabulous idea. I will caveat that I don't code (yet) but can follow along several of the examples and I think I "get it"...let me know if anything below is BS/way off. I was thinking about the same problem a few weeks back when LinkedIn was s̶c̶r̶e̶w̶e̶i̶n̶g̶ ̶o̶v̶e̶r̶ ̶d̶e̶v̶e̶l̶o̶p̶e̶r̶s̶ improving their users experience. It's basically a fancy online resume with a graph that connects to so many people now that it's a crapshoot if people actually remember how they got connected in the first place. But I digress. Thinking about how this sort of framework you've developed might be useful for an aggregated profile that can then be opened up as a proxy to various service/apps instead of actually giving direct access to your accounts (maybe have something like IFTTT to import your various social profile info into the Me API as it is updated): - Hate to allow apps to see all your github repos? Filter it via this service. - Dislike giving random apps access to your facebook likes, profile and other info? - use this service as a proxy to only present the info you feel comfortable with (maybe a maximum of 5 posts, or posts within a certain area/geofence, etc). Basically, you can create app permissions that are more granular than Facebook's out of the box preferences. Of course - all this would need support from apps to tap into this data source (the Me API). It's an interesting idea. Taking this a step further - I think it would be cool if it was somehow possible to obfuscate my identity - while sharing SOME of the "Me API" data with other services. Some examples I'm thinking of (which may not be really possible - I realize the data provided could provide enough clues to be used to "uncover" my identity by piecing the datapoints together): - Allow a photo editing app to pull my SmugMug photos through the Me API endpoint, but keep my SmugMug account info obfuscated (ie: do not provide direct URL to my smugmug site's photos), but still pass over my actual photos. - Allow a mapping/analysis application to access my Yelp reviews by location, without knowing my actual yelp account info/nickname. - Pass over my LinkedIn graph (that I've manually downloaded as a CSV and ported into my Me API datastore) without providing access to my LinkedIn name or profile info. This could be used to help friends find jobs - without exposing my identity to a random webservice. - Pass over all my Google map searches/saved locations but don't provide any that are within 100 miles (+- 10 miles) of my home. Provide access to my phone number area code, but not my email address. etc. The Larger Idea here: There are apps that can use your data to provide useful results/info/insights but ultimately the user (Me) should retain how much info is in fact exposed to the service. Maybe the service only gets a HashID or a Nickname - but can access a bunch of data that I give permission for it to access. Another application may get my whole profile, but not detailed transaction data. The webapps that leverage my profile info should "own" the graph of data they collect from Me and Others - but the user (Me) controls how identifying it is. Sorry for the rambling, hopefully this isn't too crazy or off the wall. Either way - great idea and thanks for sharing!
- firloop 11y agoI had a similar idea -- however yours definitely is way more polished, especially during the setup phase. I definitely share your ideas of data liberation and open access. I've been meaning to add more endpoints to mine, but perhaps I'll move over to yours and just port the missing endpoints over. Here's mine on github: https://github.com/lukemiles/api.lukemil.es https://github.com/lukemiles/api.lukemil.es Here's my website which is powered by it: https://lukemil.es/is/ https://lukemil.es/is/ (sleep endpoint is currently disabled).
- gordjw 11y agoVery cool! Any thoughts about making it two-way at some point? For example, make sure that every network is updated if you change your name or email address.
- ac360 11y agoDan -- the themes and ideas behind this are rad and I'd love to chat with you to find out more about what you'd like to do with this. I've been bootstrapping a concept that shares "the personal API" concept for 12 months now with a team of three and we're going to launch it in a couple of weeks. Since other services' API rate limits and terms makes depending on them nearly impossible at scale, we decided to give everyone an API and a database. The database stores data in community-driven schemas called the JSON Archetypes: https://github.com/servant-app/json-archetypes https://github.com/servant-app/json-archetypes. The project is Servant -- The Amazing Personal Database (https://www.servant.co https://www.servant.co) Anyway, I just starred the Me API. I'm in Oakland, if you're nearby, and you can contact me whenever you like: austen [at] servant.co I just like hanging with similar thinkers. Cheers
- kordless 11y agoI assume you are hosting these personal databases?
- ac360 11y agoYes
- danfang 11y agoHey, this is really cool! There are a couple of key differences between the two services (mine doesn't aim to be a service), but I see a lot of common themes as well. I'll definitely keep track of Servant in the coming months.
- deleted 11y ago[deleted]
- harshitrohatgi 11y agoThis is super cool. I never encountered something like this before, but seeing the comments, it seems there are a bunch of them out there. Will surely build mine.
- viraptor 11y agoCan we just call it finger2? Or json-finger? I mean, that's what it really is, just adjusted for today's reality. I was surprised the readme in the project doesn't mention it.
- Jemaclus 11y agoOP might be too young to know what fingering (heh heh) means. :)
- danfang 11y agoHmmm, I never really thought of it like finger - that's a good analogy! I think there is potential for many other use cases rather than just for others viewing information about you though.
- icebraining 11y agoRelated: WebFinger (https://webfinger.net/ https://webfinger.net/)
- junto 11y agoTo make the schema a little bit more generic, have you considered changing the 'tech' node to 'skills'? Non-tech people could use it then.
- danfang 11y agoHey Junto, it's a completely open schema as of right now. Feel free to add whatever fields you wish and render them as you will! What I have is just a template that works for me - think of me.json kind of like json-server, but all about you.
- fiatjaf 11y agoAnyone interested in this might look at http://indiewebcamp.com/ http://indiewebcamp.com/
- jdanoz 11y agoClearbit is another similar Service.
- Xorlev 11y agoIt is? Doesn't look like it. Looks like this is about turning your own data into an API, not another company selling data about you.
- juanuys 11y agoOr, if you already have a personal website, why not just use something like FOAF [1] via RDFa [2]? (granted, jCard is ugly) [1] http://xmlns.com/foaf/spec/ http://xmlns.com/foaf/spec/ [2] https://en.wikipedia.org/wiki/RDFa#Examples https://en.wikipedia.org/wiki/RDFa#Examples