Not Being Able to Post to My Facebook Feed Using the API
03 Sep 2020
I am hung up (once again) on the fact that I can’t post to my personal Facebook feed via the Graph API. Facebook removed the ability for you to add or update to your Facebook feed via the API in 2018. You can still post to pages via the API, but are out of luck via your personal profile. It drives me nuts because I queue, schedule, and automate a significant amount of my online presence. Honestly Facebook doesn’t do much for my personal or professional online presence, but the fact that I can’t do it is driving me nuts. I have an idea I want to implement around telling stories on Facebook, and without the ability to post via the API, the idea is a non-starter. I really bothers me when I can POST or PUT to any platform I depend on, and the fact that it is Facebook drives me even more nuts, making it something that I just can’t seem to put down.
Posting to My Facebook Wall Using Postman
While you can’t officially add to your feed via the official Facebook API, you can using Postman. You can install the Postman Interceptor Chrome extension, proxy traffic, and isolate the API call you need to post to your feed, including all the configuration and cookies you will need to make it work. I will write a separate post that walks through how to do this, but I just want to think through all of this before I move forward teaching other people how to do this. Like most everything with APIs, this isn’t just technical, and there are numerous business and political considerations to flesh out before I just plow forward teaching everyone how to circumvent Facebooks limitations. I am not sure I want to me sharing this knowledge, let alone polishing the rough edges so that it is something that a wider audience can implement. You see, APIs are neither good, nor bad, nor neutral, and there is a reason Facebook shut these APIs down, and there are plenty of people who are looking to exploit our worlds via Facebook these days. This stuff isn’t ever straightforward.
Using Postman to Automate Storytelling on Facebook
I want to tell stories via my Facebook profile. I want to be able to craft 12 hour storytelling productions composed of text, images, and links which get scheduled and posted to my Facebook profile. I don’t get any business value from Facebook, but there is a certain performance value gained when I use my Facebook soap box to broadcast to the “friends” I have there. However, I don’t want to be posting each scene of my production via the Facebook interface, using their “sharing products”. I want to queue up 10, 20, or 30 individual posts under the umbrella of a single production, then schedule the posts to trickle out over a 12 hour period. I am looking to perform fictional and non-fictional stories via my personal Facebook profile, performing for my network, taking advantage of the only value Facebook brings me—influencing my friends, family, and acquaintances. I just want more control over my Facebook narrative, and because Facebook isn’t interested in properly defending users against abuse, I can’t do this through the front door (UI).
This type of storytelling isn’t a new idea for me. The original idea comes from 2 or 3 years back, and involves expanding my Facebook storytelling to include other diverse voices. I don’t just want to produce my own stories to perform on Facebook, I want to subscribe to other people’s stories, and perform them via my own Facebook profile. I want to solicit stories from other diverse voices from around the world, encourage them to craft thoughtful narratives using text, images, and links, then bundle them up so that I can queue them up, schedule, and perform their stories via my own Facebook profile. I want to take my storytelling format and open it up to other interesting characters, and turn my friends, family, and acquaintances into the audience for my “Facebook production”. Using my platform to help expose them to other ideas that I think are interesting, bringing thought provoking stories to their Facebook stream, going beyond what I am capable of saying and doing on my own, but more importantly giving voice to other people. The challenge here, is while I have creative and positive motivations behind wanting to do this, the way that I am potentially “renting” out my profile to other people, is something that many will see as problematic, and something Facebook surely won’t like very much (which is sad ;-), and if I enable using Postman, it is something that bad actors can potentially take advantage of as well.
Facebook Platform Automation and Zombie Abuse
I have no real insight into why Facebook shut down their APIs for posting to the Graph API. Their original announcement really doesn’t give many of the reasons behind, just burying the breaking change amidst a flurry of API changes in the wake of the Cambridge Analytic scandal. Bots, automation, and abuse is common place via any API platform, and it is something that Twitter, Slack, and others have to deal with as well. This problem isn’t unique to Facebook, so there are precedents for how to deal with—Facebook just doesn’t care about other approaches. The sensible approach would be not get rid of the ability to post to an API, but to begin developing a set of policies for what is acceptable automation and what isn’t, keeping track of the good actors as well as the bad actors. Along the way, amidst all of the turmoil of the last election Facebook made the decision to not invest in managing automation and abuse, and to just stop allowing for adding and updating to personal feeds via the API. It was easier. Sadly, shutting down the API paths for adding and updating items from your personal Facebook feed does not stop automation and abuse. As I can demonstrate via Postman, there are numerous ways you can automate through the browser, and reverse engineer how the Facebook UI submits to the API. They aren’t stopping the automated posting of messages, they are just pushing it further into the shadows where they don’t have to see it, or acknowledge it. This is the politics of APIs. This doesn’t stop bad actors, it just makes it harder for good actors to deliver meaningful orchestrations outside the Facebook domain, while offloading responsibility for bad behavior.
There are numerous approaches to automating activity on Facebook, but one of the most common is for Facebook users to just give their username and password over to someone else, handing over their accounts to puppet masters who automate and spread disinformation, initiate likes, follows, and exchange in all the other social currencies that feed Facebook’s business model. If I accept stories from other people and publish them to my Facebook profile, what makes me different from someone who turns over their account to the control of some other actor? I guess that I am choosing the stories that get published, and I am still going to be the curator of what gets published to my profile—it is just the stories that do not originate from me. But what percentage of stories do anyways? Facebook wants me to orchestrate each of these engagements using their “sharing products”, but I still want the ability to step one step back and schedule or automate the stories I want to appear on my timeline. I shouldn’t have to operate in the shadows to get this done. If Facebook doesn’t want to build out this capability I should be able to do it myself. OK. Lets just pause here for a moment. Really, what right do I have to demand this of Facebook? None. I guess I believe in some original bullshit about the web being free and open, and that all platforms should have APIs. If we believe that the platforms possess the power, then I guess we are all helpless in these battles. That is what this is all really about for me. It is about who has the power, and they’ve further eroded the power I have over a significant slice of my digital self—the part that exists in the Facebook.com domain. Which collectively represents are pretty influential part of our society.
Holding Platforms Like Facebook to a Higher Standard
While I believe that Facebook’s domain (facebook.com) is theirs, and I am just operating on their platform. I also think that with mobile devices, and us engaging on these platforms from within our homes, while handing over many of our relationships and engagements with friends, family, and the public, that any domain can be elevated to new levels. I think Facebook and Twitter are approaching a level where they can be seen as a public service, and require more regulation and oversight. Media outlets are regulated. Telcos are regulated. Online domains aren’t being regulated because they are so new. This is how we go from me believing that platforms SHOULD have APIs to platforms MUST to have APIs. If I depend on Facebook for election information, assistance in a disaster, and as a critical communication channel when it comes to my personal and professional lives, then there should be higher expectations for the access and control I have over my data on the platform. We have seen API regulation emerge dictating that banks in Europe have to possess public APIs, and recently with healthcare providers in the U.S. that work with Health and Human Services (HHS), and Centers for Medicaid and Medicare Services (CMS). Further regulatory frameworks like General Data Protection Regulation (GDPR) in Europe, and California Consumer Privacy Act (CCPA) in California are setting the stage for wider productions around tech platforms, with APIs playing a central role in how this is accomplished. The regulation of tech platforms is coming, whether we like it or not.
While I believe that regulation is coming I do not believe that it will come easily, and be anywhere near fully baked and speaking for end-users like me when it does become a reality. This is why I am still toying with operating in the shadows using a Postman collection, and even further polishing my process, making it accessible to a wider audience. Not because I think it is the right thing to do, but because it further puts pressure on Facebook, and tells the story about how access and control over our own information and digital presence is being restricted and pushed further into the shadows. Why should I be able to give access to 3rd party providers of my choice to read my Facebook data, but not be able to add and update it. Just because Facebook isn’t interested in managing abuse, exploitation, and disinformation. It has been been over two years since Facebook shut down the add and update capabilities via the Graph feed API, and they’ve repeatedly demonstrated that they are only curbing abuse on the platform when something makes the news, and looks badly on the platform. I am not keen on having to reverse engineer platforms so that I can have access to my own data, but I am very keen on shining a spotlight on this line in the API universe, and keep things on the public API side of this coin, rather than buried behind web and mobile applications, only accessible to those who are savvy enough to pull the curtain back a bit. Well, luckily Postman excels at pulling the curtain back on what is going on via Facebook, Instagram, and any platform that uses APIs (which is all of them). This frontline is the divide between those who are open and observable with their APIs and those who aren’t. A line I have been walking back and forth along since 2010.
A Postman Collection and Interceptor Powered Facebook Production
I can reverse engineer how Facebook adds posts to a users feed using Postman Interceptor. I can save this as a Postman collection that I can run manually. I can also schedule this to run on a regular interval using a monitor. I can develop other APIs and user interfaces to help craft stories for publishing to Facebook. I can also add scripts to each collection to pull these scripted stories and automate the publishing of stories to my Facebook profile. The removal of the Facebook API paths haven’t stopped me from automating what gets posted to my Facebook wall. It just pushed me further into the shadows. I don’t want to be here, but I also want to be able to tell stories via my Facebook profile. I want to be able to tell stories about what matters to me right now in a Black Lives Matter Uprising. I want to be able to counteract the poison of disinformation that is ubiquitous on the Facebook platform right now. Facebook trying to restrict my voice just makes me more determined. The problem with this view though, is if I make it so that I can tell my story, then open that up for others to tell their story, then I am opening up this ability to a wider world of unknown actors that I can not guarantee will act in the same ethical and creative way that I will. So, should this stop me from doing it? Should we silence ourselves, and let Facebook silence us, just because we are operating off the radar in the shadows? From where I stand right now, the answer is no. I am going to go ahead and see if I can refine my approach to automating the posting of text, links, and images to Facebook using the shadow APIs behind the application, using a Postman collection.
I am obsessed with being able to tell stories on Facebook as well as tell the story of Facebook. I would rather to be able to do this via a proper API, but I will tell the story either way. It seems crazy to be so obsessed with just being able to schedule and automate my story versus me writing or pasting in and hitting submit, but it matters. This is really about Facebook not wanting to properly manage automation on their platform. It is really about Facebook keeping all the power for themselves, keeping it open for partners and bad actors, while restricting the power and control we have over our own data. This is about making sure the platforms we depend on in the public domain are as observable as possible so that the community can help keep the platform honest. I know that most people don’t see this line that I live and breathe each day, but it doesn’t mean that it doesn’t matter, and that it shouldn’t be pushed back into the shadows, leaving us more exposed, and with less control. Facebook is an important platform. Like Twitter, I am not willing to completely walk away from it. I fee like it is my responsibility to help shine a light on what is going on, and keep telling stories about this digital line that exists in our world. A line that regularly defines who we are each day, while also opening up our personal world to more surveillance and exploitation when not properly managed. In the end, the most important part of all of this for me is that I am being denied the ability to tell my stories. I just want to be able to tell my own stories via my Facebook profile, and also open it up to others people’s stories if I so choose. Allowing me to elevate other voices that I wish to be heard, turning my Facebook profile into a production of my choosing. Counteracting the much darker storytelling that is dominating this platform today, helping bring more balance to the digital world that has been consuming our physical one over the last 20 years.