paint-brush
د بلوسکي وړیا API زما سره زما د غوره پوسټونو په ترتیب کولو کې مرسته کوي لکه مخکې هیڅکلهلخوا@noahm
نوی تاریخ

د بلوسکي وړیا API زما سره زما د غوره پوسټونو په ترتیب کولو کې مرسته کوي لکه مخکې هیڅکله

لخوا Noah5m2024/12/17
Read on Terminal Reader

ډېر اوږد؛ لوستل

زده کړئ چې څنګه په برنامه توګه د تصدیق ، API کالونو ، او oEmbed پای ټکي په کارولو سره خپل خوښ شوي بلوسکي پوسټونه ترلاسه او ایمبیډ کړئ.
featured image - د بلوسکي وړیا API زما سره زما د غوره پوسټونو په ترتیب کولو کې مرسته کوي لکه مخکې هیڅکله
Noah HackerNoon profile picture

زده کړئ چې څنګه په برنامه توګه د تصدیق ، API کالونو ، او oEmbed پای ټکي په کارولو سره خپل خوښ شوي بلوسکي پوسټونه ترلاسه او ایمبیډ کړئ.


ما پدې وروستیو کې بلوسکي ته حرکت کړی دی. زه دمخه تایید کولی شم چې دلته د ټنونو په زړه پوري ، ګټورو او الهام بخښونکي مینځپانګې سره یو متحرک ټیک ټولنه شتون لري. زه خوشحاله نوی کارونکی یم! د پایلې په توګه، زه غواړم زما د "دیو راؤنډ اپ" میاشتني خبر لیک پوسټونو کې زما غوره خوښ شوي بلوسکي پوسټونه ځای په ځای کړم. زما موخه دا ده چې د بلوسکي پوسټونو جوړ شوي لیست چمتو کړئ چې په ځانګړي ډول د سافټویر پراختیا کونکو سره مناسب دی.


خوشبختانه، د بلوسکي API د کارولو لپاره په بشپړه توګه وړیا دی، په دننه کې ټولو مینځپانګو ته پروګراماتي لاسرسي ته اجازه ورکوي. دا ټیوټوریل به تاسو ته د دوی د API په کارولو سره د خوښ شوي بلوسکي پوسټونو بیرته ترلاسه کولو او سرایت کولو پروسې له لارې پرمخ بوځي ، د شخصي بلاګونو ، پورټ فولیو یا مینځپانګې راټولولو پروژو لپاره مناسب.

زما د Bluesky API کاري فلو درک کول

ما یو سکریپټ جوړ کړی چې ما ته اجازه راکوي په اتوماتيک ډول زما د بلوسکي پوسټونه د مارک ډاون بلاګ پوسټ کې ځای په ځای کړم. زه فکر کوم چې پدې سکریپټ کې کارول شوي کوم یا ټول مرحلې د ډیری کارولو قضیو لپاره ارزښت لري.


د خوښ شوي پوسټونو سرایت کولو لپاره زما د کاري جریان لنډیز کولو لپاره ، موږ دا کلیدي مرحلې تعقیبوو:

  1. یو مستند سیشن جوړ کړئ
  2. د "اداکار" لپاره د خوښ شوي پوسټ URIs ترلاسه کول
  3. د oEmbed ایمبیډ HTML راوړلو لپاره دا URIs وکاروئ
  4. د ایمبیډ کوډ پاک او فارمیټ کړئ


بشپړ تطبیق

راځئ چې هر فعالیت او د هغې هدف مات کړو:

1. د Bluesky سیشن جوړول

 export const createSession = async (): Promise<string | null> => { try { const response = await fetch( "https://bsky.social/xrpc/com.atproto.server.createSession", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ identifier: "your-handle", password: "your-password", }), } ); const responseJson = await response.json(); return responseJson.accessJwt; } catch (e) { console.error("Failed to create session: ", e); return null; } };


کلیدي نظرونه:

  • دا فنکشن ستاسو د بلوسکي حساب تصدیق کوي.
    • یادونه: دا بیلګه د اعتبار لپاره هارډ کوډ تارونه جوړوي، مګر دا باید د تولید کارولو قضیو کې مخنیوی وشي.
  • دا د راتلونکو API تلیفونونو لپاره accessJwt JWT (JSON ویب ټوکن) بیرته راګرځوي
  • د بلوسکي ATP (مستند شوي لیږد پروتوکول) څخه د createSession پای ټکی کاروي
  • د خطا اداره کول په زړه پوري ناکامي تضمینوي که تصدیق ناکام شي

2. د خوښ شوي پوسټ URIs بیرته ترلاسه کول

 export const getBlueskyLikeUris = async (actor: string, limit: number = 40) => { const token = await createSession(); if (!token) { console.error("Failed to get token"); return; } const response = await fetch( "https://bsky.social/xrpc/app.bsky.feed.getActorLikes?actor=${actor}&limit=${limit}", { method: "GET", headers: { Authorization: `Bearer ${token}`, }, } ); const responseJson = await response.json(); const uris = responseJson.feed.map((entry: any) => entry.post.uri); return uris; };


کلیدي نظرونه:

  • د تصدیق شوي ناستې نښه ته اړتیا لري
  • د خوښ شوي پوسټونو ترلاسه کولو لپاره د getActorLikes پای ټکی کاروي
  • مهم -- د پای ټکی ډومین باید https://bsky.social وي، ځکه چې دا یو مستند شوی غوښتنه ده.
  • د هر خوښ شوي پوسټ لپاره ځانګړي URIs استخراج کوي
  • تر 40 پوسټونو پورې محدودیتونه (د تنظیم وړ)

3. د امبیډ وړ HTML ته د URIs بدلول

 export const getBlueskyPostEmbedMarkup = async (uri: string) => { try { const response = await fetch(`https://embed.bsky.app/oembed?url=${uri}`); const responseJson = await response.json(); const formattedHTML = prettier.format(responseJson.html, { parser: "html", plugins: [require("prettier/parser-html")], htmlWhitespaceSensitivity: "ignore", printWidth: 1000, }); return formattedHTML.replace(/<script[\s\S]*?<\/script>/g, ""); } catch (e) { console.error("Failed to get Bluesky post embed markup"); return null; } };


کلیدي نظرونه:

  • د پوسټ د ایمبیډ وړ HTML ته لاسرسي لپاره د پوسټ URIs سره د Bluesky oEmbed پای ټکی کاروي
  • اختیاري: په دوامداره توګه د HTML فارمیټ کولو لپاره prettier کاروي
  • اختیاري: د امنیت او پاکولو لپاره <script> ټګونه لرې کوي
    • د دې دلیل دا دی چې زه د هر پوسټ لپاره یو واحد بلوسکي سکریپټ سرایت کوم چې د بلوسکي مینځپانګې لري.
  • د انعطاف وړ خطا اداره کول

دا ټول یوځای کول: یو بشپړ مثال

 async function embedLikedPosts() { try { // Get liked post URIs const likedPostUris = await getBlueskyLikeUris(); if (!likedPostUris) { console.error("No liked posts found"); return; } // Convert URIs to embed HTML const embedPromises = likedPostUris.map(getBlueskyPostEmbedMarkup); const embedHtmlArray = await Promise.all(embedPromises); // Filter out any failed embeds const validEmbeds = embedHtmlArray.filter(embed => embed !== null); // Return the markup for all liked posts return ` ## Some Fave Posts 🦋 ${validEmbeds.join(`\n\n`)} ` } catch (error) { console.error("Error embedding Bluesky posts:", error); } }

احتمالي وده

دا حل زما لپاره کار کوي ځکه چې ټول هغه څه چې زه ورته اړتیا لرم د جامد تولید شوي میاشتني بلاګ پوسټ دی.


ځینې پرمختګونه کېدای شي پدې کې شامل وي:

  • د 40 څخه ډیر خوښ شوي پوسټونو ترلاسه کولو لپاره د صفحې ملاتړ اضافه کړئ
  • د غیر ضروري API کالونو کمولو لپاره کیشینګ پلي کړئ
  • د خطا د سمبالولو یو پیاوړی میکانیزم جوړ کړئ
  • accessJwt د تازه کولو میکانیزم رامینځته کول Jwt ټوکن که چیرې په اوږدمهاله پروسو کې وکارول شي
  • د شهرت له مخې د خوښ شوي پوسټونو ترتیب کول (خوښونه)

د ستونزو د حل لارښوونې

  • ډاډ ترلاسه کړئ چې ستاسو د بلوسکي اسناد سم دي
  • وګورئ چې د بییرر نښه ستاسو په تصدیق شوي غوښتنو کې په سمه توګه تنظیم شوې.
  • تایید کړئ چې د پای ټکی ډومینونه چې تاسو یې کاروئ ټول معتبر دي.

پایله

د بلوسکي پوسټونو ځای په ځای کول ستاسو د ټولنیزو رسنیو تعاملاتو ښودلو لپاره متحرک لاره چمتو کوي. د API کاري فلو په پوهیدو او د قوي خطا اداره کولو پلي کولو سره ، تاسو کولی شئ ښکیل ، شخصي شوي ، او جوړ شوي مینځپانګې ادغام رامینځته کړئ.

راتلونکی ګامونه

  1. د کوډ سره تجربه وکړئ
  2. د ایمبیډ سټایل تنظیم کړئ
  3. اضافي Bluesky API پای ټکي وپلټئ


خوند واخلئ او خوشحاله ټیکرنګ وکړئ! 🚀