Drupagram is the missing Drupal + Instagram integration module.

In this early implementation the module will interact with the Instagr.am API and be able to fetch media items. Advanced methods like relationships between Instagr.am users and such will be added later on.


This is a limited but stable release. Basic fetching, authentication and views integration is provided.
If you look under the hood there are a lot of functions that still need to be connected to the API endpoints.


Make sure you've downloaded the latest version of the oauth module and enable the oauth_common module before installing Drupagram.

After installing the module, a message will direct you to http://instagram.com/developer/clients/manage/ where you need to register your application.

Once you're registered your application, copy the CLIENT ID and CLIENT SECRET values over from Instagram and go to /admin/config/services/drupagram on your local Drupal instance and enter those values.

Now, if the communication between your local server and Instagram worked, you should be ready to import data, but first you need to add an account. To add an account, just edit your user account at user/1/edit. Notice there's a new tab labeled Instagram accounts. Click on the Instagram accounts tab. You should see a button that reads Add account, click on it. You will be redirected to Instagram where you will be asked to authorize the Drupal site to access and import your pictures. After giving the authorization, your Instagram account will be linked with your Drupal account.

Now that you have at least one Instagram account, you can run cron. On cron, Drupal will import all the images for all the accounts available on the system.


It is highly recommended to enable full UTF8 support on your site in order to prevent problems importing image titles and descriptions, see UTF8MB4 Convert for more details.

Where do I see my images

After following all the steps above, you should enable the views module (if you haven't already done so).

Drupagram comes with a default view that will create a new dynamic path for all your users to see their imported Instagrams at /user/{user_id}/instagram, so for example user 1 can access his/her images at: /user/1/instagram

But if you need more than what the default view provides, go ahead and add your own view.


If time allows, I will try to add image caching support, so that we can store local versions of the Instagram picture. This would allow us to expose the images to be themed through image styles since they would be managed files.


This module was developed super fast thanks to the code cleanliness of the twitter module.
The abstraction and OAuth implementations were developed to closely match the twitter module. Thanks @eaton

The development of this module was supported in part by Achieve Internet and the TreeHouseAgency

Maintenance by:

Drupal Latin America (Rob Montero's spare time)

Please take a moment and thank our co-maintainers:


Supporting organizations: 
Development Support
Donated Development Time

Project information