Has Facebook quietly retired public access to daily_active_users field on the Graph API? - facebook-graph-api

Typically, the Graph API Application object contains the following public fields: daily_active_users, weekly_active_users, and monthly_active_users (see Graph API reference.)
I have been unable to access these using FQL or Facebook's Graph Explorer for a couple of days.
Furthermore, I note that AppData.com's chart of daily activity seems to be broken. I've contacted them to ask what their experience has been.)
Despite this, the fields are still in the documentation and available as part of the (new! improved!) Graph Explorer which might lead one to think that they're still supported.
Has anyone seen any communication from Facebook around this issue?
Is this a very bad sign?

I have exactly the same problem that begun around yesterday or the day before.
AppData seems to duplicate the numbers of the previous days at the moment.
FQL seems to work somehow: (Click this for Zynga Poker)
But this not a good solution - I also need the Graph API back.

Related

List all friends which a user is also following using Facebook Graph API

As a personal utility, I'm trying to write a short script (preferably in python but essentially I'm looking for the proper REST calls) to get a list of all my friends who I am also following (actually, list all friends and for each one see whether I am also following them).
I tried playing with the API but:
Could not get the pagination right. There seems to be a link to the next results "page", but when I follow this link, the next page is always empty. I do realize this is mainly do to my incompetence with this API, but I just didn't think it would be so difficult.
When I view a specific friend's connection to my user, I can't seem to find this information. This data is obviously stored somewhere, as it is available using standard methods (i.e, open up a friend's facebook page in the browser and look for the "Following" part)
This may sound like a silly question and I did try playing around with the graph explorer, after generating a token with all possible permissions, but I did not get far.
Please help me make my life a little easier by not having to resort to the manual way of opening up every single friend page, this sounds exhausting.
PS: This may sound like a personal question and not very professional, but as I was struggling with this task, I though it may be of use to other individuals looking for this functionality
Thanks!
Listing all friends isn't possible with v2.0 API. https://developers.facebook.com/docs/apps/upgrading/
As long as you have an application that can still run v1.0 API calls then you can do an FQL call
SELECT is_following, target_id FROM connection WHERE source_id=me() AND target_id IN (SELECT uid2 FROM friend WHERE uid1=me())

Since vs updated_time vs created_time

I'm writing an app to collect facebook posts matching a certain search term, and I'm trying to fetch only new or updated posts since the graph.facebook.com/search endpoint. I've concluded from debugging that this particular endpoint uses time-based pagination (since, until), so here's my process:
fetch new posts using the most recent 'since' time (default to now - 5 mins at start)
update my 'since' time to the most recent created_time or updated_time from the list of return posts
sleep X seconds, repeat
However, I can't even see my own newly created posts. I do get some results, but they seem random in terms of why they match my search and not my own. For testing purposes, I'm using a user-level access token generated using the FB developer tools, so I should definitely not have any permissions issues restricting me from seeing my own content.
What gives?
Edit: More testing reveals that I can randomly receive SOME of my own posts, but there appears to be no rhyme or reason why one post shows up and the others don't. For example, I just posted 3 posts and received the second one via my app. The first and third are nowhere to be found.
I think what you are seeing here is an artefact of the consistency model Facebook is using. You can see another example of this when you look at your feed from two different devices. If I look at my feed from my smartphone and then go and check out my feed on my PC, sometimes I see the same items and sometimes there are items I saw on one device, that I didn't see on the other. This is because Facebook uses Eventual consistency.
In simple terms this means that given enough time, all data clusters will be consistent, but this is not guaranteed at any given time point. The bad news is: there is not much you can do about this. It's just a fact-of-life when working with very large distributed systems (and Facebook is one of the largest in the world). At this scale it is just not practical, where technology is today, to keep all copies of the data completely in sync at all times. What I think you are seeing is two requests serviced by two clusters which are currently not 100% in sync.
Here is an interesting read on the subject.
And here is something from Facebook. You can skip to the Consistancy section of the page (Although, I would recommend reading the entire post. It is a very interesting overview of Facebook architecture).

December 2013: Graph API search now returning less/different results than use facing search

I have a small app for my private use that performs Graph API search on public posts - it basically has some extra filtering in it and pagination/time span options that makes it more useful than the user facing search. It has been working fine for about 6 months, but on or about mid-December 2013 or so, Graph API search started returning far less and different posts than the user facing search. It is easy to test this, in the Facebook developer's explorer tool, you can type a query like: "search?q=cat stuck tree&type=post" and then do the same search in facebook with "cat stuck tree" on public posts and see the differences. Previous to mid-December 2013, these searches returned the same results. Does anybody know what has changed? (I made no changes to my code).
It's because Facebook decided to just YANK away the possibility to search public posts. YET AGAIN. Sorry, but facebook totally sucks these days. They really do not care about the people using their platform. It goes from bad to worse.

Updating objects previously created through Graph API

I've searched high and low for an answer to this question, but it doesn't seem to be possible. Which I can almost not believe :)
I am building a Facebook integration for my website, and I am creating links through the Graph API. So far, so good. However, when it came to updating stuff, I got stuck; when my content is updated, I want to somehow update the Facebook data too, but I can't figure out how to do this. There doesn't seem to be anything in the documentation about this; I can create new items, such as links and events, I can delete them programatically, but I can't update them. I've tried doing a POST against the object URL (for example, I created a link using https://graph.facebook.com//links, I got back the ID 123456 for my new link, and I then try to update it by POSTing to https://graph.facebook.com/123456). This was just a guess, and it didn't work.
Am I missing something? Doesn't Facebook like updating the objects I created through Graph API? Thanks for any insight you might provide.
It turns out I was on the right track; POSTing to the object itself is the right way to go (the question I linked to in my comment was a big help). I was simply having issues storing the original ID, which meant I was POSTing to an entirely different ID. The lack of documentation from Facebook throws you off and stops you from digging deeper.

Facebook comments box: Possibility to really set num_posts = 0?

I'm using the comments box on my site to get more users socially involved and at the same time I'm reading the Graph API to print those comments on the same site to make it crawlable for search engines. Problem is now that for a real user the comments show up twice (through my graph api print AND through the actual fb:comments plugin box).
Any ideas how I could solve this ?
Would prefer to show only the comment-field from FB and use my own echo to show the comments as this way enables it to REALLY moderate the comments (not just set it to limited visibility). Thanks for any suggestion!
I found some sort of solution for my problem. It's not perfect, but the closest one can get to what I wanted:
Instead of directly returning the query from the Graph API, I attached a script to the comment.create event. This script writes the new comment into my database, where I can moderate again. This way I have to double-moderate, but therefore I don't have any unwanted comments on my site.
I also found out that with the old deprecated comment-box you can set the comments that get natively shown by facebook to 0. That way only the already moderated comments get shown by my own script coupled with my database. It works the way I want it, even for friends of the unwanted commenter.
Hope that helps someone else too!