Hootsuite app integration with VK

Hootsuite is household name for anyone working in the social media marketing space. More than two hundred proud Hootsuite workers have contributed to building the most advanced social media marketing tool on the internet. While being tightly integrated with a limited number of social services, Hootsuite also offers a so called "App Directory". The app directory aims to attract a broader selection of social service integrations created by third-party developers.

VK is the most sophisticated and widely used social network in Europe. As Hootsuites online marketing and social media initiatives rapidly gained traction in the region, Hootsuite's support was flooded with requests from large and medium-size businesses craving a VK-capable solution. That is why the Hootsuite team decided to partner with Pieoneers.

We have no shame confessing that the project was a challenge. No one had ever seen a VK web-based client and the required integration level was far deeper than assumed for web sites. Therefore a more advanced solution would be required and, as a result of tight collaboration with the VK team, we were granted deeper access the API in the way that had never been allowed before. The app we created along with Hootsuire and VK can be considered the first ever full-featured VK web client.

Since the application serves tens of thousands of users it would not have been efficient to place a middleman server in between Hootsuite and VK. Instead, our approach in this case was to let the API requests be performed securely on the client side — this made the app far more efficient. The integration technologies we used included Ruby on Rails, KnockoutJS, and OAuth.

This abstract flow describes the interaction between the Hootsuite users, the app server and the VK API.


+--------+                                +------------+                                +--------+
|        |--(A)- Authorization Request -->|            |                                |        |
| Client |                                | App Server |                                | VK API |
|        |                                |            |--(B)- Authorization Request -->|        |
|        |                                |            |                                |        |
|        |                                |            |<-(C)- Authorization Dialogue --|        |
|        |                                |            |                                |        |
|        |<-(D)- Authorization Dialogue --|            |                                |        |
|        |                                |            |                                |        |
|        |                                                                              |        |
|        |--(E)---------------------- Authorization Dialogue -------------------------->|        |
|        |                                                                              |        |
|        |                                |            |                                |        |
|        |                                |            |<-(F)----- Access Token --------|        |
|        |                                |            |                                |        |
|        |<-(G)----- Access Token --------|            |                                |        |
|        |                                +------------+                                |        |
|        |                                                                              |        |
|        |--(H)--------------------------- Access Token ------------------------------->|        |
|        |                                                                              |        |
|        |<-(I)------------------------ Protected Resource -----------------------------|        |
+--------+                                                                              +--------+
        

At the end of the development cycle, we performed extensive quality assurance (QA) testing and stress tested the app to ensure it could handle the expected loads. The results are exciting: the application responds virtually as fast as the VK API, and without obvious degradation when the number of users increases. Performance and reliability, the pillars of the VK's popularity, have been transparently brought to Hootsuite customers.

As the result, VK.com for Hootsuite features:

  • Feature 1 3eb8b8460c59c6c8c156c47b17c4241ea339ae5ba877f05a17d7adb451b2e715
    Share VK.com content with your social networks.
  • Feature 2 24cd0579f4f9f21491a920734fa7ec8d90ca941f6ca309b0bf6a1b253dd9f5ca
    Post updates to VK.com, including photos.
  • Feature 3 7d7ec9d351007a9adadbf09dfaf513f8a6f6c878b61e4ce5abf37a3c6aa9fa7e
    Search for content in the VK.com network.
  • Feature 4 04c8acad44dfacd157ec4c732fb0b831eaea04989b484638943b814b0c1c04f7
    Comment and like posts in your network activity.
  • Feature 5 5bea4e5bd659bfc1473b4365584d2f34e8c3dd7bb6af8b0deaba7ec8e310696b
    View a stream of all your VK.com posts.
  • Feature 6 3112b049b131b7cd94c91cc7948a53e16ed856a67aa70cdd26c5afa3d820957c
    View the VK.com newsfeed for users you follow.
Read more on our blog