Question about limits of Facebook's data use policy - facebook-graph-api

I'm building a web app that will make heavy use of Facebook connect. I'm not planning on displaying publicly any data I receive from Facebook other than basic profile information. However, I would like give users the ability to display publicly to the world information such as what college they attend. I understand I could retrieve this data from facebook but sharing it would violate their data use policy. My question is, if I have the user enter the information manually into my application and I displayed it publicly, would facebook terminate my application?
My other question is I'm planning on creating an messaging feature in my application where users can message each other privately. Would this be a violation of facebook's policy since it might be interpreted as replicating facebook's messaging feature?

Retrieving and showing information doesn't violate their TOS. (But you need keep in mind items: II.3 and II.11 especially, as well as other items from http://developers.facebook.com/policy/)
You can implement on your site any feature you want

Related

Access public data of other users using Instagram/Facebook API

I would like to access other users public data to show in my website when they configure the page by their username/id.
It means I will create an app on FB/Instagram side and with the help of this app's access token I would like to fetch public data of other user.
Is this scenario valid now? Earlier it was possible but I am not sure now with changes in policies. Even the documents are not clear enough which can say it's possible or not?
Has anyone tried this out recently?
Users: Only data of users who specifically authorized your App is available, depending on the authorized permissions. It does not matter if data of user profiles is public or not, you have to get permission from each user separately.
Pages: If you want to get data of pages you don´t own, you have to go through a review process with your App to get access to "Page Public Content": https://developers.facebook.com/docs/apps/review/feature/#reference-PAGES_ACCESS
That´s for Facebook, about Instagram you can just hit the docs (as well): https://developers.facebook.com/docs/instagram-api/business-discovery
My number one recommendation, in this case, is Facebook API or Instagram API from Data365. I may be considered biased since it is the tool I work for, but it is really a reliable tool you can get public profile data by users ID or username.
Of course, you can use the official Facebook/Instagram APIs for searching all public objects (post, user, page, event, group, place, check-in). But note, the official API has a number of restrictions. Andyrandy has already described them in his answer. Compared with official APIs, we do not have such restrictions.
Besides, our APIs provide such unique features as gender and age recognition (via face photos) along with identification of post reactions that give a competitive advantage in obtained analytics. Data365 APIs also enable developers to create monitoring tasks for a one-time or auto data update. And above all, we do not break the law but only provide web scraping within the legal framework.

Getting private posts from Google+ using APIs

I worked with facebook graph API.
With a Facebook application I was able to retrieve user information (e.g. posts, status update, and so on) using graph APIs. Of course, it can be possible only for users that accept to share their information with the application.
I'm going to do the same with Google+. First of all I want to say that I'm new in the google+ universe.
Reading Google+ documentation I'm aware about the possibility to fetch public posts using something described here:
https://developers.google.com/+/api/latest/activities/search?hl=en
Of course, here they talk only about "public activities".
Does exist on Google+ a similar mechanism to Facebook application that allows me to retrieve private posts from a user (after that he approves my application of course)?
This is not currently available.
You may wish to star (and thus follow) this issue to indicate you would like to see this as a feature and to track progress or responses from Google.

Find out if you can post to users wall

I'm currently toying with the Facebook Graph Api and have been able to get some interesting results, I would like to be able to post to one of my Facebook App users pages. They have authenticated the app and confirmed the ability for my app to be able to post on there wall. I know there is the can_post check using FQL, but I haven't seen any information on this using the Graph API. Is there a possible check to make so I can see if I have the ability to post on there wall?
can_post
https://developers.facebook.com/docs/reference/fql/user/
This settings is actually a setting of the timeline:
This setting only affects the viewers of the specific timeline and does not apply to the owner of the timeline.
can_post - bool - Whether or not the viewer can post to the user's Wall
Beyond this settings, by authenticating an application and giving it certain publishing permissions, the application, using it's per-user per-app access token will be able to perform actions on behalf the actual user. Actions will be attributed to the user even though it is the application that initiated and published these stories.
To answer what I assume is your underlying question - your application, given the appropriate permissions, will always be able able to publish a story to the users timeline. The act of giving an application any permissions is the same as allowing the application to act as you and access everything you would be able to access. This includes posting a story to your own timeline (even if no other user would be able to).

Banning users from Facebook application

Is it possible to ban users from using a Facebook application?
I'm not talking about the canvas or the discussions board (which is what I've found by looking around), but the application itself, that is, causing errors or preventing actions whenever the user tries to use the Graph API (in my specific case, an Android app that uses the Graph API to provide some features).
The scenario I'm envisaging is something like this:
user authenticates app to use its features and gets the access_token;
user uses the Graph API according to the app permissions;
user someday does something he shouldn't;
user is banned and, even if the access_token is still valid, Graph API requests fail, and will always fail even when deauthorizing and authorizing the app again.
Is this possible using the Graph API or the developers app console on Facebook, right now, or is there really no way to prevent users from misusing your application? I guess I may do something "out of band" to enforce this somehow, but being able to do it at the Facebook level as well would be much more effective and harder to circumvent.
See https://developers.facebook.com/docs/reference/api/application/
Use the 'banned' connection of the Application object to ban specific users from your App - you'll need the App access token to do this
Just create a blacklist of specific Facebook User IDs, and check the user's ID against the blacklist when they log into your app.
If the blacklist matches, show a message telling them that they are banned and don't allow access to any functionality.

Tracking Checkin Deals

We are considering running a contest/drawing for users who check-in to our client's business. The Checkin Deals (PDF) feature looks really cool but it doesn't seem like you can programmatically access data on users who have checked in for a deal.
You can however get access to Checkins in general, using the Graph API. So I guess I just want to confirm that it would be possible for us to run a drawing/contest for users who check in to a place, before talking about it with our client.
Thanks!
You can't get information about who checked into a deal or checked into a place. The only information like this available via the Graph API is places an individual user has checked in, if they granted your application access to read that. It's similar to how Facebook doesn't provide who likes a page via the API, mainly due to privacy.