justb3a Posted October 1, 2015 Share Posted October 1, 2015 Represents the instagram feed of a user. Instructions: Register a new instagram Client: at instagram. It's really important to add the current url as redirect url. (For example "http://page.dev/processwire/module/edit?name=InstagramFeed/"). Complete module settings (Client ID and Secret), leaving the access input token field empty. This value will be generated. Click the "get Access Token" link to generate code and access token in module settings. Configure username to output feed from (default setting is "self": to get the most recent media published by the owner of the access token) ... and use it! > detailed instructions at github 14 1 Link to comment Share on other sites More sharing options...
MuchDev Posted October 1, 2015 Share Posted October 1, 2015 Hey this looks great! I have one recommendation that you might want to consider, I didn't see anything that caches the json array that you get back. I had an issue with a site a while back where periodically due to the server having to make a round trip to the instagram api every load the rest of the page would hang a bit. Not really an issue if you are using something like procache, but maybe a cache option might be a good idea for a configurable option . Just a thought. 1 Link to comment Share on other sites More sharing options...
Marty Walker Posted October 2, 2015 Share Posted October 2, 2015 Thankyou, thankyou, thankyou. edit: http://mjw.photo/instagram/ 1 Link to comment Share on other sites More sharing options...
justb3a Posted October 2, 2015 Author Share Posted October 2, 2015 @MuchDev: Thanks, this is really a good hint. Do you have any suggestions how best to tackle this issue? Link to comment Share on other sites More sharing options...
MuchDev Posted October 2, 2015 Share Posted October 2, 2015 I used an article on stack overflow, I think it was this post: http://stackoverflow.com/questions/20558078/caching-instagram-api-requests-using-php I don't think I had to do too much. I didn't end up using markup cache as you could I just cached the file to a static directory in my cache folder. You can see in the script where you could parameterize your settings in. Good luck . Link to comment Share on other sites More sharing options...
Craig Posted October 2, 2015 Share Posted October 2, 2015 You could use the built-in WireCache functionality 1 Link to comment Share on other sites More sharing options...
MuchDev Posted October 2, 2015 Share Posted October 2, 2015 Yeah good point there is that too. I think why I used that was in debugging, having direct access to the file made it easier to just delete it and have it re-cache, also I got to play around with some bare metal php. Link to comment Share on other sites More sharing options...
elabx Posted October 2, 2015 Share Posted October 2, 2015 My first site with PW has an Instagram feed coded in the most horrible way haha, just like, plugged in from everywhere because I didn´t understand much of PW modules (I think I still don´t haha). I did resolve the caching issue just by saving the response in a file (though using file_put_content and stuff like that, no fancy PW functionalities, not even saving it inside the cache folder!!) , and also managed to make an ajax call to keep calling more images with the pagination API (that would be really nice to have in the module also!). With each new call, I updated the cache file list of image data and substituted the next pagination id. Some of my doubs is if suddenly a big cache file could turn troublesome and also I don´t really get how you could call a module function from an AJAX call, like, do you use an URL? Anyway, thanks for this nice module! Link to comment Share on other sites More sharing options...
justb3a Posted October 5, 2015 Author Share Posted October 5, 2015 Thanks for all your input! I decided to use the built-in WireCache functionality. v0.0.2 (module settings) Cache Expire: By default a cache lasts for one day but you can select another lifetime: ... hourly, daily, weekly, monthly ... never, to prevent expiration ... save, to expire when any page or template is saved by clicking the link below all module caches will be deleted 4 Link to comment Share on other sites More sharing options...
benbyf Posted October 8, 2015 Share Posted October 8, 2015 THANKS! Tried it and seem to be getting strange results, sometimes the images appear and sometimes not - bottom of this page: http://www.benbyford.com/about/ Is there a problem with Instagram connection or caching or something? <?php $feed = $modules->get('InstagramFeed')->getRecentMedia(); foreach ($feed as $image): ?> <a href="<?=$image['link']; ?>" class="instagram-item"> <img src="<?=$image['images']['thumbnail']['url']; ?>" alt=""> </a> <div class="hidden"> </div> <?php endforeach; ?> Link to comment Share on other sites More sharing options...
justb3a Posted October 9, 2015 Author Share Posted October 9, 2015 @benbyf: which ProcessWire version are you using? What’s your cache setting in module settings? What happens if you disable caching (set it to “now”). If caching is enabled, have a look at your database table caches. There should be an entry named module.instagramfeed-recentmedia. Is the depending “data” field filled? There should be json including your requested images. Link to comment Share on other sites More sharing options...
benbyf Posted October 9, 2015 Share Posted October 9, 2015 it's strange as it worked then didnt. no template cache, module cache set to "never" (couldnt see "now" as an option) Link to comment Share on other sites More sharing options...
benbyf Posted October 9, 2015 Share Posted October 9, 2015 also i've found data in the module in the DB, my module settings Link to comment Share on other sites More sharing options...
justb3a Posted October 12, 2015 Author Share Posted October 12, 2015 Which ProcessWire version are you using? Have a look at your database table caches. There should be an entry named module.instagramfeed-recentmedia. Is the depending “data” field filled? There should be json including your requested images. Have a look at the ProcessWire error log, if something went wrong while authentification / receiving access token there should be an entry. In your instagram client settings, did you activate "Enforce signed requests" (this checkbox must be unchecked!). In module settings is there an access token? Clear the cache for this module in module settings. Make sure you have the username spelled correctly or leave it empty (default: self). I receive your media without any problem: Link to comment Share on other sites More sharing options...
justb3a Posted October 12, 2015 Author Share Posted October 12, 2015 v0.0.3 ∞ view at Github clear module cache after save module config data in module settings Link to comment Share on other sites More sharing options...
iNoize Posted December 11, 2015 Share Posted December 11, 2015 Hello, thanks for the Module. is it possible to add also feed by hashtag ? Thanks Link to comment Share on other sites More sharing options...
justb3a Posted December 11, 2015 Author Share Posted December 11, 2015 I added this endpoint, could you please pull develop branch and test it? Get a list of recently tagged media getRecentMediaByTag($tagname) <?php $feed = $modules->get('InstagramFeed')->getRecentMediaByTag('processwire'); ?> 2 Link to comment Share on other sites More sharing options...
iNoize Posted December 11, 2015 Share Posted December 11, 2015 Wow that was fast For the first time it works currently for me Thank you. I will test it out on the weekend Link to comment Share on other sites More sharing options...
justb3a Posted December 11, 2015 Author Share Posted December 11, 2015 Wow that was fast I had to wait for Jenkins anyway… Link to comment Share on other sites More sharing options...
benbyf Posted December 11, 2015 Share Posted December 11, 2015 whats the intagram strategy, its like they're locking it down more and more with the new approval process and new sandbox mode. https://www.instagram.com/developer/sandbox/ also do you create one client, or multiple clients - new one for each site? If multiple its almost impossible to do as each time you have to setup, submit to approve with instagram (including a step that asks you to submit a video of how your using instagram...) and wait. boo instagram boo! Link to comment Share on other sites More sharing options...
iNoize Posted January 25, 2016 Share Posted January 25, 2016 Hello, is it possible to set more than one hashtag and set limit for the page ? My idea is to inegrate it in a blog. and only e.G. 4 last pics with hashtags should be visible on the current post. maybe something like <?php $feed = $modules->get('InstagramFeed')->getRecentMediaByTag('processwire, cms'); ?> Thanks Link to comment Share on other sites More sharing options...
justb3a Posted January 28, 2016 Author Share Posted January 28, 2016 @iNoize: I cannot find an instagram api endpoint which supports more than one tag. If you're not able to get your request fullfilled by using the official instagram app or website, it won't work in most cases. Link to comment Share on other sites More sharing options...
benbyf Posted January 28, 2016 Share Posted January 28, 2016 whats the intagram strategy, its like they're locking it down more and more with the new approval process and new sandbox mode. https://www.instagram.com/developer/sandbox/ also do you create one client, or multiple clients - new one for each site? If multiple its almost impossible to do as each time you have to setup, submit to approve with instagram (including a step that asks you to submit a video of how your using instagram...) and wait. boo instagram boo! this still the case or am i missing something? Link to comment Share on other sites More sharing options...
justb3a Posted January 28, 2016 Author Share Posted January 28, 2016 this still the case or am i missing something? I have to say that I personally don't use instagram. I just created an account to develop this module which I needed for a client project. Link to comment Share on other sites More sharing options...
Tanky Posted March 30, 2016 Share Posted March 30, 2016 First of all, great plugin! Two questions: — Is there a way to update the cache every 60 seconds? — Is it possible to access the "high_resolution" endpoints, even though they aren't already implemented in instagram API (files are there but not implemented)? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now