Facebook Graph API Group Feed shows no posts past v2.3 - facebook-graph-api

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).

Related

Google Calendar error when trying to share

I have this service account "testname#myapp-123456.iam.gserviceaccount.com"
My clients are using this account to share their Google Calendar.
Scenario 1.
Last couple of days ,when a users tries to insert this account to their google calendar sharing
(Share with specific people--> Add people) they get
an error "Something went wrong.Please try again later"
Scenario 2
Many clients have already add this share (when it was working correctly)
When a user tries to remove this share he get also this error.
Practically he is not able to remove his Google calendar share with us.
IS there something wrong with Google or do i miss something ?
Thank you for any help
This seems to be intentional. See: https://issuetracker.google.com/issues/148804709
Status: Won't Fix (Intended Behavior)
Hello,
Thank you for creating this issue.
That's right. Due to a recent change of behaviour, any account has to explicitly "accept" a Calendar that has been shared with them. In case of a Service Account, this "acceptance" should be made by adding the calendar to the CalendarList via CalendarList.insert [1].

Retrieve/use G suite Default Routing rules programatically

I am only looking for read-only access.
I'd like to develop either a small web app, or maybe a script embedded in Google Sheets, that allows my users can look up which Google Admin default routing rules they are involved in.
To do that, I'll need an API to go through the rules and tabulate the information in the way I need it.
Can I do that with Admin SDK, which is soon-to-be deprecated? Is there a replacement product that can do what I want?
More details:
I currently use default routing for a few purposes. I have about 15 rules, and each one changes the route of a simple Match Rule by adding extra recipients. Some of these are to catch emails sent to ex-employees.
Others are to handle certain general email addresses like sales#example.com. Rather than using a sales group, we have a sales user account. And rather than putting forwarding rules in that users' settings, we use Default routing.
I had a similar problem where I needed the routing rules.... a bit different case since I just wanted a one time access to see what was going on - not necessarily something for users. I could not find anywhere else that helped me even retrieve the rules (Other than open each one up individually). I ended up finding that I could just scrape the HTML of the routing rules page to a CSV and filter for lines with an '#' character. The rules have a bunch of t/f that presumably can be matched back to their function - I didn't need all that and didn't spend the time to figure it out. This probably doesn't help the for the original post case, but perhaps my finding can help the next person looking for a way to do this.

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.

How to click a button on website with C++

I'm designing a web crawler with C++,but there is a web page asking me "Do you at least 18 years of age?" when I first fetch the web page by using URLDownloadToFileW,and of course I must click YES.
In javascript,I can use document.getElementsByTagName('button')[0].click(); to simulate a button click,so is there any other way to solve such problem with C++?
That is not really easy to do, but if you want to do it, you need several requests.
What the click (i.e. document.getElementsByTagName('button')[0].click(); in JavaScript) does is to trigger an associated click event. Your first step should be to find the event handler code and take a look into it. The event may for example send another (AJAX) request to the website. If that is the case, you have to perform the request in C++ in your crawler, too. Many sites also use cookies to store the user's answer to such questions (or at least the fact that the user selected "I'm at least 18 years of age"). So your crawler has to accept such cookies, too, and store them between requests.
I am aware of the fact that this answer is rather general, but it is difficult to give a more specific answer without knowing the exact website you are crawling.
Alternative approach: Instead of writing a crawler that downloads the website content directly, you might utilize frameworks like Selenium. Selenium allows to automate a browser and is intended to be used for testing, but one could also use it to crawl a website. The advantage is that you can also perfom things like clicks easier in the browser, given you know the ID or the XPath of the element you want to click. This might be easier to do than a "classical" crawler.
However, you should be aware that many websites have some kind of protection against flooding them with requests in place. That is, if you intent to do a lot of request to the same server in a short amount of time, you might get blocked from the server. So try to limit the requests to the absolute minimum.

Creating apps for facebook groups possible or not?

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.