November 2015 by Emy Carlan

Posting to Twitter, Facebook & Co. from Within Your App

So you have an app and you need to publish posts on social media platforms - e.g. when the user clicks an option or some other trigger is pulled? Search no further, this is where all your questions are being answered.

This is a guest post by Emy Carlan. Emy is a product manager at Unified Inbox and founder at Zuma Land, working on multiple projects in the Unified Communications space. One of them is a Chrome extension called Outbox PRO, an excellent social governance, compliance, and publishing tool.

There are 3 ways of achieving this, and all of them come with advantages and pitfalls. We're going to look at 3 common social media platforms and how to integrate them programatically into your app, as integrating other platforms is similar (or easier). The most popular channels are, obviously, Facebook, Twitter and LinkedIn.

Before we go into details, no matter which option you choose, you have to create apps on each of these platforms:

  • Creating a Facebook app is explained on their developer pages. The process is very clear, but it takes a while. So grab a cup of coffee and do this. I'll be waiting.
    Note: if you want to post to Facebook pages, for example, you need the manage_pages and publish_pages permissions, which require approval from Facebook. But you need to do this only after building your app, as they need to test it before approving, so your app has to be functional. You can do the testing with the accounts of your app administrator(s), as all permissions will work for them.
  • For Twitter it's a bit simpler. Just go here, create your app, and make sure you have the "write" permission enabled, so you can post tweets.
  • Creating LinkedIn apps starts here.

Option 1: Use Existing Libraries

There are many libraries out there that offer nice methods for interacting with social media APIs like   client.update("I'm tweeting with @gem!")

Advantages

  • Easy access to the APIs via simple methods
  • Less development time

Disadvantages

  • Each library has a different syntax
  • Sometimes the libraries stop being maintained
  • Distracts from focusing on the core product

Option 2: Do it Your Way

If you're one of those people that prefer doing things their way, not relying on any libraries, you can read through the REST API documentations of each social media platform and build your own library / setup to automate posts.

This takes a lot longer - but once you have it, it should be easier to maintain and build new features on top of it.

So, have fun reading and building!

Advantages

  • Your own, clean code structure
  • Easy to maintain
  • The code is tailored to your app (no unused code)

Disadvantages

  • High development costs
  • Maintenance has to be done by you (and you'll have to do it pretty often, as in our days the social media giants are changing their APIs faster than most companies can iterate)
  • Distracts from focusing on the core product

Option 3: Use Unification Engine

I have partnered with a company called Unified Inbox as Product Manager to make developers' lives easier. Together we have just launched the Unification Engine, which offers a single unified set of APIs for posting to Facebook, Twitter, LinkedIn, Xing and Weibo.

The Unification Engine API is capable of posting to multiple social media channels with a single API call. You can also add links, images or hashtags to your posts, and never worry about maintaining the code. The API does it all for you.

And one of the best things about it: It's even free for small projects!

Check out the website and documentation. The service is particularly helpful if you want to be up and running in as little time as possible.

Advantages

  • One API for multiple platforms
  • No maintenance required
  • Free for small projects

Disadvantages

  • As your app scales up, you will need to upgrade to a paid plan

Conclusion

Posting to social media sites can quickly become a hassle - since every platform uses its own standards and APIs. However, I hope this article gave you an overview of your options.

If you have any questions or feedback, feel free to reach out to me on Twitter. Happy posting!