2 februari 2021
Instagram op je website
Dus je wilt de meest recente posts van je Instagram account op je website laten zien? Geen probleem zou je denken… Dat dacht ik ook toen een klant het vroeg, maar niets bleek minder waar.
Allereerst leken de meeste oplossingen en plugins die ik online vond het niet (meer) te doen.
Aanvankelijk dacht ik dat het te maken had met de updates van Instagram van het afgelopen jaar. Facebook/Instagram heeft namelijk een nieuw principe geintroduceerd om de afbeeldingen van Instagram op te vragen. Je mocht de afbeeldingen altijd gewoon ophalen als je een API key had. Je kreeg dan van Instagram een JSON file met daarin alle gegevens over je afbeeldingen, waaronder de URL. Superhandig. Helaas besloten ze bij Facebook dat ze dat niet langer toe wilden staan. De nieuwe methode vereist dat je je eerst authoriseert, waarop je een token krijgt, dat je kan inwisselen voor een token dat langer geldig is, waarmee je dan een JSON kunt ophalen, waarin tijdelijk geldige links staan naar de afbeeldingen. Deze JSON mag je gedurende een maand kan opvragen en daarna moet je met dit token een nieuw token opvragen, dat op zijn beurt ook weer een maand geldig is. Ik ging er vanuit dat veel oplossingen en plugins deze nieuwe methode te omslachtig vonden en daarom hun software ‘kapot’ hadden laten gaan.
Dat bleek echter niet waar! Natuurlijk waren er een paar die niet meer werkte, maar de meeste bleken het gewoon nog te doen. Toen ik dezelfde oplossingen in Chrome laadde deden ze het namelijk wel. Ze deden het dus alleen niet in mijn Firefox! Firefox is redelijk streng wanneer het op Facebook (code) aankomt en wat bleek: ze blokkeren alle oplossingen die hun afbeeldingen direct van Instagram/Facebook halen. Dat is ongeveer tweederde van de oplossingen die ik heb gevonden. Dat dat geblokkeerd wordt is terecht, want het mag niet volgens de wet, ook niet met een cookie banner. Meer info daarover vind je in de uitspraak in de ‘Max Schrems rechtzaak’, waarin ook het Privacy Shield ongeldig is verklaard. De overige oplossingen deden het wel in Firefox, dus deden zij iets anders, maar wat? Na een snelle check bleek dat zij vrijwel allemaal een eigen CDN gebruikten en die CDN’s werden niet geblokkeerd door het Facebook filter van Firefox.
Dat was het punt waarop ik me realiseerde dat het weer eens veel ingewikkelder in elkaar stak dan gedacht…
Samenvattend was ik er dus achter gekomen dat Firefox met zijn ‘Facebook container’ de Instagram plaatjes op je website blokkeert als je ze direct van Instagram/Facebook haalt. Met direct inladen loop je dus het risico dat je plaatjes niet getoond worden en riskeer je een AVG/GDPR boete. De vraag is echter… is die andere oplossing, waarbij de afbeeldingen van een ander CDN worden gehaald, dan wel AVG/GDPR-proof? Het korte antwoord is: Nee. Het lange antwoord: Dat hangt er van af of het bedrijf achter het CDN Amerikaans is, of de servers (alleen) in Europa staan en of je een verwerkersovereenkomst hebt met deze partij. Theoretisch zou dat dus een legale oplossing kunnen zijn, maar in de praktijk is dat vrijwel nooit het geval. Dat was het punt waarop ik me realiseerde dat het weer eens veel ingewikkelder in elkaar stak dan gedacht… terwijl het inladen van de afbeeldingen van je eigen Instagram profiel toch niet zo moeilijk zou moeten zijn.
Dan maar zelf bouwen
Aangezien ik geen goede AVG/GDPR compliant oplossing kon vinden voor het inladen van een paar simpele Instagram plaatjes, besloot ik het heft in eigen hand te nemen en zelf iets te bouwen. Na wat technische omzwervingen kwam ik erop uit dat dit (helaas) toch echt via de Facebook/Instagram API moest. Zo gezegd, zo gedaan. Samen met mijn tweelingbroer heb ik het hele authorisatie en token-inwissel-dansje geprogrammeerd en geautomatiseerd. Daardoor konden we met onze nieuwe webapplicatie, die we uiteindelijk PPI Loader hebben genoemd, eenvoudig afbeeldingen downloaden en opslaan op onze server. Een mooie oplossing voor onze eigen klanten, die daardoor geen nieuwe verwerkersovereenkomst hoeven te tekenen.
Voor Jekyll en WordPress
Om wat ruchtbaarheid te geven aan onze tool besloot ik platform specifieke toepassingen te bouwen voor Jekyll en WordPress. De Jekyll oplossing heb ik op mijn Jekyll Codex website gepost en de WordPress plugin heb ik opgestuurd naar de WordPress plugin directory. Zodoende kunnen ook andere developers (en eindgebruikers) profiteren van ons harde werk. Het mooie van de WordPress plugin is dat het mogelijk is om de bestanden op de WordPress server te cachen. Op die manier gaan er helemaal geen requests meer direct van de bezoeker naar onze PPI Loader tool, waardoor we het privacy probleem omzeilen en er ook geen verwerkersovereenkomst nodig is. Helaas is deze oplossing nog niet beschikbaar in de WordPress plugin directory, maar je kunt hem al wel downloaden van onze PPI Loader website.
Wil jij ook Instagram op je website? En wil je dat op een AVG/GDPR compliant manier doen? Neem dan contact op!
() Joost van der Schee