Instagram test **need API_KEY**

This commit is contained in:
matthieu42morin 2024-01-30 10:24:55 +01:00
parent 1c27a7f2a8
commit bdaed92960
4 changed files with 51 additions and 0 deletions

View File

@ -0,0 +1,8 @@
import { writable } from 'svelte/store';
import type { Writable } from 'svelte/store';
import type { InstagramPost } from '../types/instagram';
const instagramFeed: Writable<InstagramPost[]> = writable([]);
export default instagramFeed;

7
src/lib/types/instagram.d.ts vendored Normal file
View File

@ -0,0 +1,7 @@
export type InstagramPost = {
id: string;
media_type: string;
media_url: string;
caption: string;
timestamp: string;
}

View File

@ -0,0 +1,13 @@
import { error } from '@sveltejs/kit';
import { IG_API_KEY } from '$env/static/private';
export async function GET() {
try {
const response = await fetch(`https://graph.instagram.com/me/media?fields=id,media_type,media_url,caption,timestamp&access_token=${IG_API_KEY}`);
const data = await response.json();
return new Response(JSON.stringify(data));
} catch (err) {
console.log('Error: ', err);
throw error(500, 'Error retrieving Instagram data');
}
}

View File

@ -0,0 +1,23 @@
<script lang="ts">
import instagramFeed from '$lib/stores/instagram';
import { onMount } from 'svelte';
onMount(async () => {
const res = await fetch('/api/instagram');
const data = await res.json();
instagramFeed.set(data.data);
});
</script>
<main>
<h1>Instagram Feed</h1>
<section>
{#each $instagramFeed as post}
<article>
<img src={post.media_url} alt={post.caption}>
<p>{post.caption}</p>
</article>
{/each}
</section>
</main>