OpenSocial and its usages - opensocial

I have looked for some explanation on the exact usages for the set of standards known as OpenSocial.
I need some clarification if I can use OpenSocial like the following.
I would like to create one library used to community with an OpenSocial api for use in my website that will not 'behave' like an application described by common sites like facebook and myspace. I'm not making a myspace of facebook application, I'm creating my own website and I want users to be able to find friends.
I would like to allow users to store usernames and passwords for various OpenSocial-supported social networks. I would also like to use the api to sync events from my web site to their specified social network. I would also like to allow my users to view a list of friends and invite them.
Is it possible to create one library that supports OpenSocial and simple "point" to and social network that supports it to get a list of friends and etc?

Many OpenSocial containers (social networking sites) support REST and/or RPC methods which can be used to access friend lists, post activities, etc. Several client libraries have been written to work with these APIs (http://wiki.opensocial.org/index.php?title=Client_Libraries). It is possible to use the client libraries to create a site which allows you to sign in with an account on a supported OpenSocial network and obtain a list of your friends.
However, it is not possible to authenticate against an OpenSocial API by storing a user's name and password and sending it to the social networking site. This is considered a poor design pattern and is discouraged. Instead, OpenSocial supports 3-legged OAuth, which involves redirecting a user to the social network where they input their credentials and are redirected back to your site with a token which can be used to access the user's data.
Note that not every site supports 3-legged OAuth, although at least MySpace, iGoogle, hi5, and Netlog do right now.
Once authenticated, you will be able to fetch data from pretty much any network. Posting activities back is supported on some networks, but not all of them at this time.
This approach does requires you to register your website with each social network you want to support, which can be a scaling problem. To try and help this, Google released Friend Connect, which ties together OpenSocial APIs from various networks to give you one interface which is easier to program against (full disclosure: I'm a Google employee and work with Friend Connect from time to time). I gave a talk at Google I/O this year describing such integrations with a website which may be of help. (Since I'm currently limited to posting a single link in my posts, it's up at http colon slash slash code.google.com/events/io/sessions/BeyondCutPasteGoogleFriendConnect.html)
I'm happy to elaborate further if you have additional questions.

Related

Graph Api - manage multiple Facebook accounts

I have a question about Graph Api from Facebook. We want to create tool to management accounts in facebook and groups releated with them.
Basic functionality of tool is possibility to add acounts to the system, and then add you can add multiple facebook accounts to each of them. Then, system get all posts from groups releated with facebook accounts.
I did research, and I know quite what is possible and what no, but many endpoints of API requires app review. My question is about this review - wheater app like that, when one user can add multiple facebook accouns and use data (like posts, comments) from them is allowed by facebook and will pass the review?
That depends on what exactly you mean by “accounts” …
Facebook pages? Sure, you can let your app user add as many of those as they like, for the purpose of managing them, reading feed data, etc.
User profiles? That would not really make sense, because every person is only allowed to have one personal profile on the platform to begin with. And adding other people’s profiles (by having them authorize your app, using their access tokens on behalf of someone else) is likely not going to fly in review either.
when one user can add multiple facebook accouns and use data (like posts, comments) from them is allowed by facebook
“Using data” is rather vague as well; what you can and can’t do with user data is outlined in the Platform Policy: https://developers.facebook.com/policy

Crawler facebook in python, partnership

I'm a graduate student whose research is complex network. I am working on a project that involves analyzing connections between Facebook users. Is it possible to write a crawler for Facebook based on user's post information?
It is an unusual question, but..
I'm looking for someone who can do it together (if necessary even paid).
Building a Facebook crawler is against the TOS of Facebook:
https://www.facebook.com/legal/terms (3.2)
You will not collect users' content or information, or otherwise access Facebook, using automated means (such as harvesting bots, robots, spiders, or scrapers) without our prior permission.

Advantages/disadvantages to sign-in with Twitter, Facebook, and Google?

What are the advantages and disadvantages of implementing social sign-on on my website using these providers:
Facebook
Google
Twitter
I've noticed that certain websites employ one and not the other, or two but not three. Is this just a personal decision, or are there specific considerations that I should keep in mind (e.g. Facebook doesn't give me a user's email address, Twitter doesn't give me contact information)?
I had the same thought and problem a while a go, the thing is:
In the end it comes up to you and what Information you need from an User.
A problem for me in the past was that twitter for example doesn't provide a users email address while facebook does. So you must either set up a dummy email or extent the signup so a user must enter his email. etc. etc. etc.
A problem would also be what you application is about, if you count on social interaction and social traffic via shares etc. etc. a social authentication wouldn't be bad.
Google isn't represented much in authentication and interaction because.. you know.. Google+, A network for Google Employees.
Jokes aside, it's 'almost always' a good think to implement Social Authentication for the reason that Signup Rates can slightly increase. Of Course you should judge for your self and define your needs.
Hope that helps a bit.
(I would recommend you give a look at this )

Open Stream API

I am wondering if there is a common mechanism for a third-party side to access to any social network data, and I found this social-networks connect services. In this article, they describe 4 stages for a third party to connect to a social network.
1) Identity Authentication: the third-party application can use the authentication services provided by social network side (e.g., OAuth) to authenticate users.
2) Authorization: the social network provide the permission for the third-party side to access its own data. (normally, social networks again use OAuth to manage the access right)
3) Streams: let third-party sites publish to users' activity stream and vice versa. (e.g., Facebook uses Open Stream API)
4) Applications: let third-party sites develop rich social features within the application scope (e.g., the third-party sides can use Graph API, FQL to update Facebook information)
My question is
1) Is it true to apply to any social network throughout this above mechanism?
2) I've read the Open Stream API that Facebook launched 3 years ago, and when I open Facebook API documents, I don't see it anymore. Is it true that Facebook is no longer supporting this api. Or in the case I misunderstood, is it possible to consider FQL, Graph API the same as Open Stream API in Facebook? or they are different?
Social Networking sites do not give direct access to their streaming data. For e.g facebook gives us public data access through it's Graph/Search API & FQL.
But for streaming data you may have to contact one of their authorized data re-sellers. They can give you one point access to all social networks you need.Datasift & GNIP are the two I remember on the top of my mind. I'm stuck at a similar point, you may also want to keep a track of my SO question which is on similar lines.

How to crawl Facebook based on friendship information?

I'm a graduate student whose research is complex network. I am working on a project that involves analyzing connections between Facebook users. Is it possible to write a crawler for Facebook based on friendship information?
I looked around but couldn't find any things useful so far. It seems Facebook isn't fond of such activity. Can I rely on the Facebook API?
Update (Jan-08-2010): Thank you very much for the responses. I guess I probably need to contact Facebook directly then. Cheers
Update (Feb-16-2011): A new book, "Mining the social web", just came out. In it, there is a chapter devoted entirely for mining Facebook using Python. Cheers.
You can't rely on the Facebook API unfortunately. To get friend information, you need to use something like friends.get(). However, any Facebook API method that returns user information like this requires that you have an active session key from that user, and generally the way you get an active session key is to have the user come to your Facebook application or page.
In summary, the information you are talking about is essentially private. You can't pick a person from Facebook, get their friends, and get those friend's friends, and so on. To me this is a good thing for privacy, but of course it prevents arbitrary analysis.
I'd throw out the idea of writing a quick and dirty application with some user appeal that you could use for research. If a group like S**t My Dad Says (funny, not really safe for work) can get 120,000 users in a couple of months, you could probably plead your case with a small research application and get a reasonable amount of users.
The problem is that facebook friendship information is typically private and only accessible to friends. It should be a lot easier to build this network on Twitter, if this is an option for you.
As others have stated, this is typically private information. If, however, Facebook per se isn't a requirement, you could use Google's Social API. A snippet from the Google Social Graph API page: "With the Social Graph API, developers can now utilize public connections their users have already created in other web services. It makes information about public connections between people easily available and useful."
Here's an article on using it in Ruby:
http://articles.sitepoint.com/article/google-social-graph-api-ruby-rails#
This lifecode post provide a basic python script to scrape your facebook friends contact info.
The output of this script, is the profile ID, profile pame, profile URL, e-mail address and mobile/phone number (if provided by friend).
WARNING: This is against Facebook TOS. Use at your own risk.
Info provided for educational and research purposes
http://ruel.me/blog/2010/11/26/scrape-your-facebook-friends-contact-info-with-python/
You can use http://www.facebook.com/directory/ to get the public listed people.