Is it possible to build a client app that makes use of Facebook's private API? - facebook

I am not talking about the public graph api, i am asking is it technically possible to consume facebook's private api that facebook official apps use, and benifit from login/sign up and such features?
Like if i reverse engineered messenger or facebook app and mimic their communication with their API, whould i be able to build a working client?
Thank you.

There are existing projects that have already done the same.
Take a look at the works of dequis e.g. purple-facebook. He has also written tutorials on reverse-engineering the APIs of Facebook Messenger and WhatsApp.
Take a look at the source code of the Facebook protocol plugin of Miranda NG. They reverse-engineered the API used by the desktop web frontend of Facebook.
They exist for years. None of them have been sued so far. However, hiding your identity is recommended if you plan to do such things. Also you may want to open-source your project and host it on multiple sites. Corporate arrogance of tech companies is at very high levels nowadays.

Yes, it is theoretically possible.
However, remember that you will be easily sued if Facebook do not agree with what you're trying to do. For example, if you're trying to use their own private Intellectual Property without their permission, or if you violate their Terms of Service agreements (reverse-engineering is going to be in there without a doubt), then they can legally sue.
Facebook have public APIs with documentation which is what is intended to be used by developers. If you decide to ignore it and go digging into things which you do not own, nor have consent to access, you're going to land yourself into trouble.
I don't mean to be a kill-joy, I'm just saying how it is from a realistic point-of-view.

Related

Instagram API Usage

I'm currently working on a project where I'm "tracking" down public instagram users' statics.
But I'm encountering an issue, I'm able to get my own profile but not other's profile, even if their profile is public.
On my Facebook developer's app I don't have the authorizations to use their API (basic / graph profile), but to fill the form I need to show to Facebook how I'm using it on my website, but everything is currently backend, and I can't work on a frontend page if I can't test my api on other profile.
What am I supposed to do ?
PS: I don't mind the language, if it's functional I will adapt it to my system's language.
Best regards :)
I don't think you will get API approval for such purpose (but who knows..) so your best bet might be unofficial API wrappers from github.

Min reqs for full access to Facebook graph api?

So Twitter was a stroll in the park, Facebook requires jumping through a few more hoops. I'm not building an "app" per se; all we really need is live access to a small subset of graph api functionality. If that requires publishing a do-nothing "app" on FB for the sole purpose of collecting access tokens, so be it.
A few questions arise:
1. Are all apps to be created via personal Facebook accounts, even for businesses?
2. Can/does an app in any way expose the underlying personal account which created it?
3. Is the review process currently a super long, highly invasive rectal exam, or surprisingly smooth?
Thanks and apologies for the non-codey nature of this post.
Yes, you have to use a Facebook account and you have to apply as developer.
No.
Depends on the amount of permissions, but in general it is smooth. That is highly opinionated though.

Can I link to specific pages on my website from a facebook game?

I am developing an educational game on Facebook (Facebook Canvas App) and I would like the game to include external links to my website where the players can read more about specific educational topics. Is it true that Facebook prohibits including external links in the game?
Thank you!
External links are perfectly acceptable. An example of this is integrated ads. The ads topic is covered in multiple sections of the Facebook for Developers - Platform Policy, especially section 8. In that section, it even mentions the part about promotions, contests, sweepstakes, etc. I have participated in some of those, and all of them have linked externally for additional entries.
In section 1.5, it states:
In addition, don't require people to log into your app in order to access third party apps or sites that are not used in connection with the experience your app provides.
This alone implies that you can use sites that are used in connection with the experience your app provides.
Section 4.8 states:
Don’t build an app whose primary purpose is to redirect people off of Facebook.
If you are using the app to educate, and you are providing optional external information, then I believe your use does not violate this section.
As I do not know the design of your particular app, I can't suggest how to make the external information appear to be more integrated. If you are already providing a decent amount of detail within the app, a "Read More" (or similar) function taking them to external site would seem acceptable, especially if the user knows they are being directed away from your app to an external site.
When in doubt, you can discuss the issue with members of the Facebook Developers Group. Some of them have been doing it quite a while and probably know even more.

Build a facebook app or web app?

I want to develop an online application and I am considering EITHER building a website with community features built in or building ONLY a facebook app. I was wondering if other people have had to make the same decision and what things I will need to consider.
The website I want to build will be an educational portal where people can make and take tests online
I disagree with some of the other answers here. There is a huge difference between a) trying to advertise a new place on the web and b) trying to advertise a new functionality of an existing place. Even if this new website would offer a very tight integration with Facebook and some other social platforms. Keep in mind: facebook users really don't like to leave facebook, no matter what the reason would be. That's why the click-through rate for the advertisements is so embarrassingly poor: http://en.wikipedia.org/wiki/Facebook#Company
That said you can of course always do both: build a website and offer the same functionality through a facebook app. However my opinion here is that if you're application only offers its users a single functionality, you'll be better off just doing the latter.
What exactly is the advantage you expect by creating a Facebook-ONLY-App for that?
If it's only about taking tests you can still build a "normal" portal and include some of the Facebook-functionality through the JavaScript-SDK, like posting to the wall, Single-Sign-On, find your friends and so on. This way the user still has the choice if he wants to connect with Facebook or not. This way you also don't minimize your userbase to Facebook-users
(yeah I know, "everyone" has Facebook these days... ;) Still not everyone wants it to be connected to every single site he's using through Facebook)
Considering this comment:
Well I guess its easier for people to recommend my app if it is a facebook app, is the main reason I want to know if facebook is a good option – Zubair Mar 3 at 14:51
Build a website and then add the Facebook 'like' button. See: http://developers.facebook.com/docs/guides/web/#plugins
You should put a Twitter button as well:
http://twitter.com/about/resources/tweetbutton
In my opinion you have to develop both. First develop you website. Although facebook is having millions of users But in my opinion you cannot implement every thing as freely as you can in your web application than facebook application. You should have a website and a page on facebook. You can integrate other facebook social plugins on your website to interact with facebook.
From monitization point of it is easy for new users on website than application on facebook. Other reason website especially related to educational purposes have a huge click through rate which you cannot find on facebook application advertiser.
What is the goal of the website?
If its to make money dont do a facebook app, you have far more control of your site by designing it entirely yourself.
If you want social networking features there are plenty of APIs you can tie in to which will provide you with functionality and allow you to link into facebook / twitter etc.
A website would look more professional, it would allow you to gather statistics on unique hits, revisits etc, having your own database of users means you can gather information and market your site more specifically ( which users took which tests).
A website also allows you to monetize it by adding advertisement if that is your goal, and you can gain search engine rankings.
If you want to get publicity for your website you can use facebook by creating a group / page for the site and promoting it that way.
Also your own website wont leave you vulnerable to changes in Facebook, what if you put in all this work and in a year the terms change and a portion of your app is now in violation of the terms. What if you want to add X feature and facebook wont allow it?
Basically your site = 100% in your controll, thats a big advantage to you. With facebook you loose that advantage but maybe gain a little in being able to use more of their features. Personally id always go for my own site.
You should go for the website first, then add the social elements in the website.
Like you can enable users to login using there facebook credentials. Like/share Button.
And later on, you can also go for the facebook app, when you want to shoot for much much more traffic. Therefore, whenever you think that you have figured out what exactly you want out of your application then only go for it, otherwise try your options with website. Because once your facebook app is up, you will get hell lot of traffic.
Let me know if you need help in creating facebook application or social elements enabled website. I have built an Facebook Easy API on top of all facebook features, which will enable you to easily access anything on facebook and meanwhile reducing your work effort.
You first build it like web app and use Graph API and FBConnect to use Facebook functionalities. Then you need to create a facebook app version also because getting facebook traffic is also required. People from facebook most like come to facebook app then to another web.
You will not need to convert it to facebook app, it will be just less in width and it would be a facebook iframe app. as I some where read that facebook is depreciating fbml and iframe app is recommended.
So now you can make both things, as I think , test app can have flexible layout so that you don't need to change width for facebook iframe. So you can both things by doing one.
thanks
i'm pretty sure many people will not agre with me, but IMHO you should focus on build a good Web-App that work well also on Mobile-Phones. keep it simple, intuitive, responsive, lightweight, cross-browser and straight to the point.
if your only concern is about "recommend your app to other people" make it SEO and Multi-Language too. google will do the rest.
then if you want make your app bold, slowly and planty of useless stuffs start to add all the facebook widget you want.
PS: i'm also on facebook, twitter,
flickr, google etc etc, i'm also
sharing photos, links and usefull
stuffs, my google rss reader is full
of links with tons of nice things, well i
have never had a minute to look at it, when i need something i just start searching google
I agree with most of the answers here—a native website is the way to go. Personally, I don't trust/like FB apps. Dunno what they do, and given the number of scammers out there and FB's lack of responsibility (IMO), I rarely if ever use an FB app.
Creating the website gives users choice about whether they want to share results/integrate with their FB wall/profile. Users don't like to be forced into something.
And in the spirit of adventure that is typical of SO, it's always more fun to build your own website than to build a template-based (sort of), boring and nearly irrelevant (drowning in a sea of other poorly made apps) FB app. But that's just my 2¢
In your case, I would do a hybrid. First, build your website, but integrate it with Facebook via connect. This way you can concentrate on building your value added services and let Facebook worry about the community.
I would also not ignore the Facebook app. Now, with iframes being fully supported on Facebook, you can adapt your existing site to work within Facebook with minimal effort, as long as you keep this requirement in mind when building your original application.

Login on site with other site creadentials in asp.net

I have developed asp.net MVC social networking site. I do not want to keep credentials at my database. Its user choice like stackoverflow (this forum). When we saying login the there should be option that to login with google/yahoo/facebook credentials, if user has account over there. What I have to do? is there any webservice provided by sites (google/yahoo/facebook) or what is remedy over this ? this topic in totally new for me . I expecting help from you gems..
You could implement OpenID. DotNetOpenAuth is implementation for .NET.
Sounds like OpenId would work for you (click, and more).
Library's to use in your apps.
For Facebook you want to use Facebook Connect. There is an implementation for .net on codeplex that you may want to have a look at. You may also want to look at this question.
Google uses OpenId. You can use DotNetOpenAuth to connect to google (and any other OpenId provider, such as Yahoo and twitter).
If you want to connect with Microsoft's LiveId, you may want to read this tutorial.
EDIT
There is also the option of using JanRain, a single provider that consolidates a large number of login providers. But note that JanRain is only free up to 1000 users.
There are solutions that enable authentication and features (like status updates, friends etc) from all mentioned sites, one of them is RPX from JanRain. I've experience with RPX personally and it's a great product, however, it will cost you money. They charge you per registered user etc.. I do not know of an open source solution that can compete with RPX.
If you are not interested in paying for a product you can always implement support for the mentioned sites yourself. All of them provide open API's and examples for how to do this. For Facebook it's very easy to implement Facebook Connect. Google and Yahoo both support Open ID and there are plenty of open source resources available for .NET (like http://www.dotnetopenauth.net/).
Good luck with your community!