It has become increasingly common to integrate applications of various types into social networks, such as Facebook, Twitter and even Github. I wanted to understand how this integration works. Gitter for example allows chat interaction in Github repositories ... On Facebook, anyone can go into the developers section and create an application to interact with pages and people. Even Google Hangouts has apps to use to the user's liking at the time of the conferences. I'm very curious about how this works.
How could I reproduce something like this in an application? Do these platforms simply provide an API so that these additional apps can be integrated? Or is there something else besides that? References for reading are most welcome ...: D