justb3a Posted October 1, 2015 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
MuchDev Posted October 1, 2015 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
Marty Walker Posted October 2, 2015 Posted October 2, 2015 Thankyou, thankyou, thankyou. edit: http://mjw.photo/instagram/ 1
justb3a Posted October 2, 2015 Author Posted October 2, 2015 @MuchDev: Thanks, this is really a good hint. Do you have any suggestions how best to tackle this issue?
MuchDev Posted October 2, 2015 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 .
Craig Posted October 2, 2015 Posted October 2, 2015 You could use the built-in WireCache functionality 1
MuchDev Posted October 2, 2015 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.
elabx Posted October 2, 2015 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!
justb3a Posted October 5, 2015 Author 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
benbyf Posted October 8, 2015 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; ?>
justb3a Posted October 9, 2015 Author 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.
benbyf Posted October 9, 2015 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)
benbyf Posted October 9, 2015 Posted October 9, 2015 also i've found data in the module in the DB, my module settings
justb3a Posted October 12, 2015 Author 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:
justb3a Posted October 12, 2015 Author Posted October 12, 2015 v0.0.3 ∞ view at Github clear module cache after save module config data in module settings
iNoize Posted December 11, 2015 Posted December 11, 2015 Hello, thanks for the Module. is it possible to add also feed by hashtag ? Thanks
justb3a Posted December 11, 2015 Author 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
iNoize Posted December 11, 2015 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
justb3a Posted December 11, 2015 Author Posted December 11, 2015 Wow that was fast I had to wait for Jenkins anyway…
benbyf Posted December 11, 2015 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!
iNoize Posted January 25, 2016 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
justb3a Posted January 28, 2016 Author 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.
benbyf Posted January 28, 2016 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?
justb3a Posted January 28, 2016 Author 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.
Tanky Posted March 30, 2016 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)?
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