Getting a permission to see information for all the users in Facebook - facebook

When I use the search box in Facebook and try to find a user, it shows me a list of all the matching users while I'm typing, along with additional information on them, such as the city they live in, and when I enter their wall/timeline, I can see more information. However, when I use Facebook Graph API to search for users, I get only basic information, and must have a permission for each user in the results to get more. Why is that? Is there a way to be able to see more information for all the users without having a permission for each of them?

[…] and when I enter their wall/timeline, I can see more information.
Only if they have the visibility of their profile to public, though. Otherwise, you won’t see much on a user’s profile if you are not friends with them.
However, when I use Facebook Graph API to search for users, I get only basic information, and must have a permission for each user in the results to get more.
Why is that?
Because, naturally, you as a normal user browsing through a couple of search results on Facebook is something completely different than offering an app the capability to access all that information for every Facebook user from ID 1 to 99999999999, and then build some huge data mining thing upon it … I think that should be quite obvious.

Related

How to get link to user's timeline from Facebook Messanger Platform API?

Did I miss sth or it is impossible to get link to user's timeline from Facebook Messenger API?
According to: https://developers.facebook.com/docs/messenger-platform/user-profile User Profile API doesn't return link in fields.
Is there any other option?
You would have to use the User Profile endpoint and use all the information for determining which Facebook user it matches to. If you image match the profile picture and match all the other information, and compare timezone to their location, it is probably possible, but it's probably not easy.
Making a workaround like this might not be a bad idea because Facebook seems to want to keep all the stuff seperate right now, as their user ID's are different for seemingly everything. The User Profile endpoint exists for personalization purposes, but it doesn't identify a user.
The user matching through login might also be useful as a outside of messenger solution, but I'm not sure exactly how that would be done.

Distinguish facebook users without asking for permission

Within a facebook app, is there a reliable way ensure, that a given action can only be performed once per facebook user, without asking the user to authorize the app?
From the looks of the documentation and the lack of positive responses to this question I would deduce it's impossible, but I have been told the adverse - without actual details.
So what I need to know:
Is there any way to achieve this?
or (if not):
Is there any resource that clearly states that this is impossible?
Can you give a more detailed example of what you are trying to do and which language you are trying to do it in?
If you have the ability to access the user_id through an indexable field like you have in a friend, like or event relationship, you could just store the user_ids in your own database as they take actions in your page. If they've already performed the action once, you'd just give a message to the user and drop whatever action just occurred. You can find all the indexable fields in the fql documentation.
If you want to get the id from a random user who happens across your app, they need to authorize your app before you can get access to their information.
I've seen a few scam apps on FB that manage to get user permissions as soon as a logged in user visits their page. These violate the TOS and most likely get deleted and their admin banned as soon as they are reported.

Accessing Information of friends of my website user

I have a tough situation here. When a User A logs into my website he authorizes me to pull out his information from facebook. Now what I am doing is searching User A facebook friends present on my website(suppose I got User B)..and then showing User A information of User B friends. Now I am getting very limited information of User B friends even if User B has authorized our site to pull out information of his friends.
Please give your input.
User B would have to have very open privacy settings for you to get information on them, unless they have also allowed your application. The default settings are pretty relaxed, but I suspect lots of people, like me, disable everything.
Ignore the red circle, that was for another answer along similar lines.

Facebook - public posts not appearing in Graph?

I am currently trying to get the posts for a specific user from Facebook's Graph API. I have done this numerous times before using a php script I have developed; but the problem this time seems to be on Facebook's end, not mine.
I am trying to get the posts from (replacing TOKEN with an access token):
https://graph.facebook.com/100001558773450/feed?access_token=TOKEN
The graph won't show any posts by the owner of that page but will show everyone else's posts, and as far as I can see the posts are marked as public, and there are no privacy settings set on the account that would stop it from adding the posts to the graph.
Any ideas?
Thanks,
Nick
Check that you have requested the manage_pages permission to give you full access to the page (if you need access as the "page owner").
Using the access_token you've got, according to this documentation there are three different things that you can select feed, statuses and posts.
I'd give those three a go from https://graph.facebook.com and if what you get back is what you require.
https://graph.facebook.com/100001558773450/feed?access_token=...
https://graph.facebook.com/100001558773450/statuses?access_token=...
https://graph.facebook.com/100001558773450/posts?access_token=...
You need to check the "profile" privacy settings (what to share with apps). But most importantly, this is against Facebook ToS!
You can't use a user profile to represent your business, you need to use Facebook pages instead!
More can found here:
Why should I convert my profile (timeline) to a Page?
Since profiles
(timelines) are for meant individual people, they aren't suited to
meet your business needs. Pages offer more robust features for
organizations, businesses, brands, and public figures, which you can
learn more about here.
Further, maintaining a profile (timeline) for anything other than an
individual person is a violation of Facebook's Statement of Rights and
Responsibilities. If you don’t convert your profile (timeline) to a
Page, you risk permanently losing access to the profile (timeline) and
all of your content.

Facebook extended permissions and interested_in property

Which Facebook extended permissions makes the interested_in property of friends show up?
I've tried using friends_about_me, friends_relationship_details, and friends_relationships.
Which one is interested_in located? I'm using the Facebook SDK for iOS devices by the way.
If not enough are found, is it because I'm doing something wrong or is it the individual users' settings are set up that way? On the Facebook profile page it might show Interested In: Women while the Graph API query might not show it even with the above extended permissions granted.
Also when I try it with a query string ID?fields=interested_in, I get nulls, except for a couple.
The permission is "friends_relationship_details". The query you are showing above is actually correct. The one thing you are forgetting is that ultimately each use can set what data their friends can share about them. The default settings for which information friends can share does NOT allow friends to grant an application access to "interested in and looking for" and "religions and political views". So in short, your query is correct and you are getting all the information you are allowed to access.
Most Facebook users have not changed these settings, meaning that only the users that have explicitly allowed friends to share interested in information will show up in your query. This will be almost nobody which is why you only have one result in your query.
To see what I am talking about go to: http://www.facebook.com/settings/?tab=privacy, click the "Edit your settings for using applications, games and websites." link, then click "Edit Settings" in the "Info accessible through your friends" section. Here you will see what permissions you allow your friends to share. There is no override for this. If you don't want the information shared, your friends can't force you to share it.
Sorry for the bad news.