diff --git a/src/lib/stores/instagram.ts b/src/lib/stores/instagram.ts new file mode 100644 index 0000000..e236044 --- /dev/null +++ b/src/lib/stores/instagram.ts @@ -0,0 +1,8 @@ +import { writable } from 'svelte/store'; +import type { Writable } from 'svelte/store'; +import type { InstagramPost } from '../types/instagram'; + +const instagramFeed: Writable = writable([]); + + +export default instagramFeed; \ No newline at end of file diff --git a/src/lib/types/instagram.d.ts b/src/lib/types/instagram.d.ts new file mode 100644 index 0000000..4b5843c --- /dev/null +++ b/src/lib/types/instagram.d.ts @@ -0,0 +1,7 @@ +export type InstagramPost = { + id: string; + media_type: string; + media_url: string; + caption: string; + timestamp: string; +} \ No newline at end of file diff --git a/src/routes/api/instagram/+server.ts b/src/routes/api/instagram/+server.ts new file mode 100644 index 0000000..256df56 --- /dev/null +++ b/src/routes/api/instagram/+server.ts @@ -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'); + } +} \ No newline at end of file diff --git a/src/routes/fotogalerie/+page.svelte b/src/routes/fotogalerie/+page.svelte new file mode 100644 index 0000000..cb1b9ed --- /dev/null +++ b/src/routes/fotogalerie/+page.svelte @@ -0,0 +1,23 @@ + + +
+

Instagram Feed

+
+ {#each $instagramFeed as post} +
+ {post.caption} +

{post.caption}

+
+ {/each} +
+
\ No newline at end of file