views:

82

answers:

2

Folks,

Note sure if this is the best place to ask this one, but I doubt there'd be a better place. I see that github, stackoverflow, facebook, twitter, linkedin etc. have been providing developer API to slice and dice user information. Couple of questions on the general nature of these API:

1) Are these open-source?

2) Is there any general feedback on which specific programming language works best with these kind of 'social' APIs? In particular, any comments on whether C/C++ are suited for such work?

3) Is there any recommended C/C++ open source package for 'mashups' across social networks?

+1  A: 
  1. An API is a specification, not code, to "open-source" doesn't really apply though each might have licensing restrictions on how you use their API that might affect how suitable they were to your code being open-source.
  2. The language will be dictated (or suggested) primarily based on what you're doing with the data, not how/where you obtain the data. You might find the networking part a bit simpler with something like Python or Perl, and do only the heavy computation (if any) in C++.
  3. I doubt there's one that's universally recommended. The usual suspects (e.g., Boost::ASIO, ACE, POCO) will probably work reasonably well for this as they do with other networking.
Jerry Coffin
A: 

Most of the social networking sites provides RESTful API that means that you need to send/receive HTTP requests/response from your application with the supported serialization format (XML/JSON/etc). Pretty much thats all you need to do. Any good Networking library and serialization/de-serialization library would let you call the APIs provided by the social networking sites. Ruby/Python/Java/Google Go/Scala has good support for these libraries/techniques. As for C++ Boost and Poco Provides rich set of networking/serialization libraries. Here is a facebook client library in C++. For twitter you have QTweetLib , QTwitLib and twttcurl. The social apis are kind of web services provided by these sites. I am not sure if opensource really applies to them.

agupta666