Creating apps for facebook groups possible or not? - facebook-graph-api

I'm a member of a facebook group that has contests with artists on a weekly basis. There are over 5000 members to this group, fortunately not all of them participate because at the end of each week there is a voting for the favorite/best artwork of that week. And the admins have to manually go through image by image and count votes. Voting is limited to those who participate in the contest, so the artist places their vote as their image description... or part of it anyway.
I wanted to create an app that would retrieve the photo info from the album to build a list of the submitted images and the artists to make counting votes much easier.
I have, in fact, created such an application but it seems it only works on personal profiles and pages... not groups due to the need to be on a "white list". It strikes me as strange when a group is "OPEN" and an app isn't even allowed to read data there, but OK.
My question is if it is possible to get an app on that white list or at least to build an app specifically for a group for this purpose? I have been unsuccessful in my attempts to find any information on this subject. So, I am asking you all here at stack overflow since you all seem to be in bed with facebook in someway. I am just hoping to get a reply from someone that knows something rather than guessing or assuming.
The last contest had 325 participants and it was entirely too many for a poll.
I do not know if this topic has already been addressed... I used the search but stack overflow uses Google for a site search and because these topics are paginated Google has indexed results to be on a certain page but when you go there the topic is nowhere to be found... not very helpful...
Anyway, thanks for your time and I would be most appreciative of getting a reply rather than the post just getting buried to the point nobody will see it...

I was wondering the same thing for a similar reason.
It appears not:
user_groups
Provides access to the list of groups the user is a member of as the groups connection.
This permission is reserved for apps that replicate the Facebook
client on platforms that don’t have a native client.
https://developers.facebook.com/docs/facebook-login/permissions/v2.0#reference-extended-profile
If anybody discovers otherwise I'd love to know.

I don't know the exact answer of whether apps can be built only for groups without short-listing, but here is an alternative solutions.
If the purpose of this exercise is to limit some functionality (or entries) only to those users who are a member of a group, then why not get the "user_groups" permissions from the user, access his groups through the Graph API and flag users as either being a member of the group or not and extend the functionality accordingly. Perhaps you could even limit registrations to only those who are currently members of the group.

Related

Facebook Graph API Group Feed shows no posts past v2.3

When accessing https://developers.facebook.com/tools/explorer, I can use the URL graph.facebook.com/v2.3/{groupID}/feed and receive a list of posts from that group. Note that I am not the group administrator. See here:
However, as soon as I change that to 2.4 or above, I can no longer receive any results:
Even stranger, though, is the response time. V2.3 responded with actual content in 983MS, but V2.4 responded with nothing in 10,174MS. The long response time for nothing is indicative of every version, up to 2.9 (most recent version).
This is a real issue, because v2.3 is being deprecated July 10th, 2017. Any idea what's going on here? It doesn't appear that they've deprecated /{groupID}/feed, so why did it stop working for me?
Normal users can not read the feed of closed groups any more.
And no, you should not try and circumvent that by building a scraper, because scraping is not allowed. Users have the ability to view the group posts via the FB UI, and that should be all that is needed.
Well, that's very annoying. And a little weird, because I can see the posts just fine via the UI
Yes, you can. But with an app, an additional party comes into play: The developer of that app, who could be the shadiest person sitting in wherever, doing whatever with the user data their app can read. And now imagine you were member of a closed group, where people might discuss sensitive issues such as health, sexual abuse, etc. Would you really want every other group member to be able to give an app you know nothing about access to what you posted in such a group …? No, of course not. And therefor that decision has been placed in the hands of the group admin(s) now.
unfortunately now v2.12 doesn't give any group feed unless you have the access token for the admin of the group (public-closed-secret).

Get pending user information to a Facebook group

I've been stumbling around the Facebook Graph API Reference for about a week trying to get acquainted and find what I'm looking for, but I'm feeling pretty stumped so far.
I'm trying to get a list of pending members to a closed group that I'm and admin for.
For each pending member, I'd like to get either:
Their street address (used to be field 'location', apparently deprecated in v2.0?)
Answer to a Group Question (what is their street address).
I've gotten as far as getting a list of current members to the group.
I'm trying to setup an Admin app specifically for my group to help speed up the validation of incoming user. The group is a housing development community group, primarily used to communicate events or issues (mostly issues...). Previous versions of the group attracted people from neighboring housing communities though, which defeats the purpose of a specific Facebook group.

Django - Detect unique users. Ignore/Ban Fraud Users

I've a web portal where user comes in and post his/her images. Now there's a contest running where people can pool in their photos and whoever has maximum likes on its image wins the contest.
So, the problem that I'm facing is one user can register as many accounts as he/she wants and like his/her own image. This will increase the number of likes on the image and the user will win, not legally but its a fraud.
So, is there any way in which I can restrict a only 1 signup from one computer. OR is there any other better way of handling this, even if I can minimize this behaviour it will be of good help.
One method I thought of is I can ask for user's phone number and can verify using an OTP. What cab be other ways of finding the fraud accounts?
Is there any way in which I can get the unique identity of the system(probably MAC address) in Django request variable via which I can allow only 1 user registration per system?
There's no foolproof way, but you can make it harder for fake users with the following steps:
Show a captcha to prevent automated sign-ups.
Track IP address when users sign-up and try to find patterns e.g. too many sign-ups from a single IP could signal fraud. It's also possible that the IP belongs to an organization and the users are genuine.
Check for suspicious IP addresses (e.g. those through VPN or cloud service providers e.g. AWS). You'll have to use a service that identifies VPN specific IP addresses. Also see : https://security.stackexchange.com/a/85416
If you want to get more technical, you could look at the highest liked photos and see if the users who liked it also liked other pictures. Look for tell tale signs. This could give you a pattern to distinguish fake & genuine likes.
Browser fingerprint
P.S. Phone number verification is also a good option since getting a disposable phone number usually isn't free. There are a few disposable free numbers that you could blacklist (search for free disposable phone number).
It is important to focus your effort on the problem. The problem that you want to solve is that people can like their own images to artificially increase their own score.
To be most effective, target the problem (multiple likes) instead of the side-issue (multiple registrations).
Here are some simple suggestions:
Prevent multiple likes from a single IP on a single image
Set a cookie when a like is given; if the cookie is set, do not accept more likes
Add a CAPTCHA. (This won't prevent multiple manual submissions, but will limit automated ones.)
There is nothing wrong with limiting registrations, but be sure to take steps first that address the core problem.

Can Datomic simplify querying data contained in dynamically accessed HTML documents?

I need to write an API which would provide access to data being served as HTML documents from a web server. I need for my users to be able to perform queries over the data.
Say on a web site there is a page which lists items and their owners. Then there is additional set of profile pages for owners which for each owner provide information about their reputation. An example query I may need to answer is "Give me ID's and owners of all items submitted in 2013 whose owners have reputation of at least 10".
Given a query to answer, I need to be able to screen scrape only the parts of the web site I need for answering the query at hand. And ideally cache the obtained information for future use with new queries.
I have no problem writing the screen scraping part, but I am struggling with designing the storage/query/cache part. Is there something about Clojure/Datomic that makes it an especially suitable technology choice for this kind of processing of data? I have been pointed in this direction before.
It seems a nice challenge but not sure about a few things: a) would you like to expose to your users a Datalog query box and so make them learn datalog-like syntax? b) what exact kind of results do you wish to cache, raw DB responses, html fomatted text, json ?
Anyway I suggest you to install and play a little bit with the Datomic console to get a grasp if you didn't before as it seems to me the more close idea to what you want to achieve atm https://www.youtube.com/watch?v=jyuBnl0XQ6s http://blog.datomic.com/2013/10/datomic-console.html
For the API I suggest you to use http://clojure-liberator.github.io/liberator/ as it provides sane defaults to implement REST services and let you focus on your app behaviour

Data mining? And how can I perform it on my website?

I’m preparing my graduation project from computer science, I made this website and it's running perfectly but my supervisor requested me to apply data mining on the website.
But I don’t understand what I should do.
The website is a social network, each user will have a profile and blog and access to some e-books that required you to be registered so you can download. The website also contains a music server that contains songs that a registered user can choose a song to download or to add it as a favorite in his profile page, the website contains ads (I used OpenX script), so this is most of the website services where I can perform data mining, the website is www.sy-stu.com.
I need ideas and what is the best way to present it in the interview?
You can ask your professor what was his intention of using data mining. Data mining algorithms can do various tasks, you need first define what you want to accomplish and then find some algorithms for this and technical possibilities.
Some ideas that came to my mind about usage of data mining in your project:
you can use data mining to find what songs (ebooks,etc.) can be favorited by a user based on other people favorites songs (find similarities, probably association rules would be a good algorithm for this).
you can use some clustering algorithms to group users based on some parameters and suggest them that they could become a connections with other people from the same group (if you have something like this)
Good luck!:)
Firstly, ask for clarification from your supervisor. Don't say 'What do you mean?', but ask 'Are you expecting something like this?' because it shows that you've at least thought about it.
If you can't think of anything, or your supervisor is vague, perform some simple data retrieval and analysis, e.g.
most active members
the most / least popular songs and books.
number of ads clicked etc
most popular website features
Just elementary analysis should suffice - you aren't doing a statistics degree. Work out the most songs downloaded in a day or per user, the average songs per user, how many users visit each day and how many sign up and never visit.
The purpose is to demostrate that your website is logging all activity, so that when you are asked 'how many books did the 20 most active users download in June' you will be able to work out the answer.
The alternative is a website that just runs and you don't have any knowledge of how your users are behaving and what they are doing, which means you aren't able to focus on things that they find important.
I dont know exactly what kind of data you are trying to mine, but have you check out google analytics? It is very easy to setup, once you register all you need is to include the javascript provided to your web pages. Google analytics will give you plenty of statistic about access to your site information regarding your site and visits. Is that what you need? The data produced is very easy to read as well and will be suitable for you to present I reckon.