I'm using Facebook connect to let users import some photos.
The only permission I've requested is user_photos but facebook adds the default one Access my basic information at the top which says they are also giving me access to their name, list of friends, and "any other information I've shared with everyone".
I really only want access to the photos, and I think the "basic information" box will scare off some users who don't want to give access to this. Is there any way to get rid of that part?
No, you can't exclude it because, it is the basic information of the user that is needed by an application to work and as you said yourself, a user will only share "any other information I've shared with everyone".
The information you'll get with the basic information is already shared by the user to everyone else.
Unless you believe that you are not part of that everyone.
You can have whatever is public.
Related
I would like to know whether it is possible to post on facebook group using facebook page with graph API or not.
I have been struggling finding solutions for this.
Pretty sure that that’s not currently possible.
https://developers.facebook.com/docs/graph-api/reference/v9.0/group/feed#publish says the requirements include that a user access token is used, and that the permission publish_to_groups must be granted, and the description of that permission also uses phrasing that indicates pretty clearly, that this is supposed to be used to publish as a user, not a page.
https://developers.facebook.com/docs/permissions/reference/publish_to_groups
(I'm aware of this question, but it's outdated to the point of no longer working, so asking again.)
With the Facebook API it used to be that all profile pictures were considered public, and you could get one for anyone without any access tokens like this:
https://graph.facebook.com/4/picture
Now in 2020 it seems that it only works for public images like Zuck there. I have a tool for Facebook page admins that shows a list of people who liked page posts, but when I try to show user pictures in the list they all now come up blank because "This object does not exist or does not support this action".
The docs now say "This document refers to a feature that was removed after Graph API v3.2". But I could not find any more information about this deprecation. Is it now just impossible to show the picture of a user without having a user access token, or has the way to call it just changed?
The feature has not been removed, but now for users that don't have their profiles set as public, you need to provide an access token.
For instance suppose you use the Page API to list all the people who commented on a post. Previously you could show the profile pics of commenters by just linking to https://graph.facebook.com/<UID>/picture. However now you need an access token for that Page, and to then access the pic as https://graph.facebook.com/<UID>/picture?access_token=<TOKEN HERE>.
I have not tested this with apps, but I would assume that also to get the profile pics of app users based on their app-scoped UID, you'd need to include an access token there as well.
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.
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.
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.