Facebook Graph API changed results from /posts today? - ios

I have an iOS app that has been fetching the user's Facebook status updates and location checkins using "/me/posts" for several months. After today's "breaking changes" update, "/me/posts" only returns recent "Like"s. It looks like "/me/statuses" and "/me/checkins" are the new proper places to check for these things. I guess that makes sense, but I saw no documentation anywhere describing these changes or saying that they would happen today. The original documentation about what is specifically returned from the graph API also seems pretty slim.
So my questions are: is this an official change to the API? Where was it specified? Where should I look so I can stay on top of these things and not have my app break for hundreds of users?
Perhaps more importantly: are "/me/statuses" and "/me/checkins" the new proper ways to get this information? Or is there something else?

Always good to keep a (sharp) eye on the Developer Roadmap. These types of changes happen often, but FB usually does a good job of calling them out ahead of time. You've answered your own question as far as whether or not it's an "official" change - you're seeing it in the wild - insofar as how Facebook works, it's official.

Try using the Graph API Explorer. It could be an access token issue.
FYI: I see a similar issue with my application, and I am able retrieve the posts only when I use the Graph API Explorer and the token I get from there.

Update: I found where some of the problems lived. In the app profile in Facebook, pick "Edit Settings" and then go to "Advanced" where you'll see a section called "Migrations". This is mostly switches to show compatibility for various "breaking changes" updates, but it also includes an option for "Include Checkins with Statuses".
Now I know where to look, things are making a bit more sense.

Related

How to invite Facebook friends from iOS app?

The current solution I found involves a complex set of process, I have not figured out 100% yet. Thus, I wanted to know an expert opinion on this.
This is what I have so far:
Access Graph API endpoint /friends which will give the list of friends who are also using the app
Invite them (I have no idea how)
For an invite, I have found this, but that's already deprecated. Which uses FBSDKAppInviteDialog.
I also found this but it seems like she is just promoting their own product. If they can do it then there must be a way for me to achieve this as well. Still, I can't find it in Facebook docs.
The sad thing is, why would Facebook make this simple stuff very hard to do?

Database for Real Time Queries/Push Notifications

I am looking to build an iOS app and website that work 'together'.
What the plan is for each:
On the iOS side, it will be pushing information to the server in the form of a post. The users will then be able to vote up and down on the posts as well; which also implies they will be able to see the other users information (in real time).
The website will be viewing this information in real time and using the posts. If a post gets enough down votes the server should tell the website and apps to remove it.
I have experience with SQL. Although SQL does not seem to be the appropriate server choice - for what I want to do - given my experience with it. (I could definitely be wrong.)
I would like to host the information myself, however have heard that Parse is good about holding information for iOS apps. I just don't know whether it gives you enough freedom to work with websites as well.
TL;DR: What kind of database/datastore should I use for a real time queries that allows for push notifications?
All suggestions are welcome. Thank you.
Try Using FireBase
firebase.google.com
Documentation

What is a good strategy for staying up-to-date with external API's?

My project is reliant on several API's, like Twitter and Youtube for example. Recently, Youtube deprecated their old API, and it caused issues with my team's iPad app.
We could have stayed ahead of the change if we were paying attention to Youtube's announcements of the upcoming deprecation. But alas, we were not and the idea of staying up to date with all of our dependencies manually(browsing the web) seems exhausting and inefficient.
I have found the following tool to help notify when changes occur with external library dependencies, https://libraries.io. However, this does not help with API dependencies.
Besides checking the API source webpages every so often, I was wondering if anyone had suggestions on how to stay notified and up-to-date with news regarding updates to a specified list of external API's?
After some time looking at different options, I have found a solution that is not perfect, but seems to work best at fitting this need.
Solution Description
This solution uses a combination of Twitter, Google Scripts, and website blogtrottr.com. I am creating a twitter list of reliable dev handles that often post updates on new API. For example I made a list that contained #twitterapi and #YouTubeDev. Used Google Scripts to create an online feed out of the twitter list. Then used blogtrottr to email me every time that feed gets a new posting.
Steps to Implement
Create a twitter list of reliable handles that often post about updates to their API
Create an RSS Feed from that Twitter list. The details for how to do this can be found here.
Plug that url that you get from Google Script into blogtrotter.
I did find some other ways to do this, but so far this is the only solution that was 100% free!

Retweets by a given user

I am trying to get a full list of a user's tweets. I do not particularly care what order they come in, but I need all of them, including what the user has ReTweeted. Essentially, I would like to have status/retweeted_by_me, but for specified user.
Is this at all possible?
This was addressed recently by the Twitter devs. You can now add a include_rts=true to your call to user_timeline. See the full discussion here: http://groups.google.com/group/twitter-development-talk/browse_thread/thread/7a4be385ff549ed0
Nope. Twitter's API leaves a lot to be desired (especially in terms of actual RESTfulness), but this particular issue is also my biggest gripe with it. You can only get your own retweets, but not the retweets of others. Look at any Desktop Twitter client, and compare a user's timeline in there with the actual timeline on the web. The latter contains all the retweets. This has been a big problem ever since they introduced the new retweets, and in my opinion is one of the reasons why acceptance of new-style RTs is slower than it could be among Twitter users. I've tried to make #twitterapi aware of the issue but never got a reply; maybe you (and anyone reading this) could do the same thing.
Their argument regarding BC is, of course, utter nonsense. It does not break BC at all, since these retweets never showed up in the first place. And even if they did, a ?retweets=true query argument would be enough to fix that. I really have no clue why they're not implementing this; their own website shows the retweets fine already, they just need to expose it in the API.

Getting stats for Twitter app

I'm using Twitter's OAuth for my app (DroidIn)
To my dismay I can't find any way to track who and how often is using the app. Searching Twitter for "sent from DroidIn" does not yield any results. I suppose I can call some sort of counter app from my code but that doesn't seem to be fair to my users. Any ideas or suggestions?
It seems that yet again I have to answer my own question. After some investigation and feedback from question posted on Google Twitter developer group it seems that for now there are no stats easily accessible or available. Said that I found 2 interesting things:
You can search Twitter using source:yourapp switch. For example you can try this query
android source:API
There is very exciting streaming API from Twitter. I have a short write-up in my dev blog.
But if you want some actual stats there's no other choice today but implement it as part of your app. There's one more possibility if you have some sort of web-based interface you may want to use Google Analytics to trigger some Google javascript while submitting the update. I'm trying that right now and may end up with article in the blog

Resources