> ## Documentation Index
> Fetch the complete documentation index at: https://docs.so-me.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# SDK ওভারভিউ

> আপনার অ্যাপ্লিকেশনে Social media studio-র সোশ্যাল অ্যাকাউন্ট সংযোগ ও পোস্ট শিডিউলিং এমবেড করুন

`@social-media-scheduler/sdk` হলো সার্ভার-সাইড TypeScript SDK, যা এমন প্ল্যাটফর্মের জন্য যারা নিজেদের
গ্রাহকদের সোশ্যাল অ্যাকাউন্ট সংযোগ ও পোস্ট শিডিউলিং সুবিধা দিতে চায়। OAuth ফ্লো ও পাবলিশিং অবকাঠামো Social media studio
হোস্ট করে, আর গ্রাহকের অভিজ্ঞতার নিয়ন্ত্রণ আপনার অ্যাপ্লিকেশনের হাতেই থাকে।

> [!WARNING]
>
> পার্টনার কী দিয়ে প্রজেক্টের প্রতিটি এন্ড ইউজারের ডেটায় প্রবেশ করা যায়। SDK শুধু বিশ্বস্ত সার্ভার কোডে ব্যবহার করুন।
> ব্রাউজার, মোবাইল, ডেস্কটপ বা গ্রাহকদের কাছে বিতরণ করা অন্য কোনো কোডে কখনোই `pk_test_` বা `pk_live_` কী রাখবেন
> না।

> [!NOTE]
>
> এমবেডেড প্ল্যাটফর্ম বর্তমানে সীমিত পরিসরে পাওয়া যাচ্ছে, এবং হোস্টেড অ্যাকাউন্ট সংযোগ এখন Threads সমর্থন করে। পার্টনার
> প্রজেক্ট ও API কী পেতে Social media studio-র সাথে যোগাযোগ করুন।

## SDK বনাম CLI

| প্যাকেজ | কার জন্য | ক্রেডেনশিয়াল | সাধারণ ব্যবহার |
| - | - | - | - |
| `@social-media-scheduler/sdk` | যেসব অ্যাপ্লিকেশন ডেভেলপার অনেক এন্ড ইউজারকে সেবা দেন | পার্টনার কী (`pk_test_` বা `pk_live_`) | নিজের প্রোডাক্টে সংযোগ ও শিডিউলিং এমবেড করা |
| `@social-media-scheduler/cli` | Social media studio-র সরাসরি গ্রাহক | ব্যক্তিগত API কী (`sk_live_`) | টার্মিনাল বা CI থেকে নিজের অর্গানাইজেশন পরিচালনা |

প্যাকেজ দুটি স্বতন্ত্র। SDK ইনস্টল করলে `so-me` কমান্ড ইনস্টল হয় না, আর CLI পার্টনার SDK প্রদান করে না।

## প্রয়োজনীয়তা

* Node.js 20 বা নতুন
* একটি Social media studio পার্টনার প্রজেক্ট
* একটি টেস্ট বা লাইভ পার্টনার API কী
* OAuth রিটার্ন পেতে পারে এমন প্রতিটি অ্যাপ্লিকেশন origin পার্টনার প্রজেক্টে নিবন্ধিত থাকতে হবে

## ইনস্টল করুন

```bash npm theme={null}
npm install @social-media-scheduler/sdk
```

```bash pnpm theme={null}
pnpm add @social-media-scheduler/sdk
```

```bash yarn theme={null}
yarn add @social-media-scheduler/sdk
```

SDK-তে ESM ও CommonJS বিল্ড আছে, TypeScript ডিক্লারেশন অন্তর্ভুক্ত, এবং কোনো রানটাইম ডিপেন্ডেন্সি নেই।

## ক্লায়েন্ট ইনিশিয়ালাইজ করুন

```ts theme={null}
import { SoMePlatformClient } from "@social-media-scheduler/sdk";

export const soMe = new SoMePlatformClient({
  apiKey: process.env.SOME_PARTNER_API_KEY!,
});
```

প্রোডাকশন API URL ডিফল্টভাবে `https://api.so-me.studio`। সেলফ-হোস্টেড বা লোকাল পরিবেশের জন্য `baseUrl` দিতে পারেন, এবং
৩০ সেকেন্ডের ডিফল্ট রিকোয়েস্ট টাইমআউটও বদলাতে পারেন:

```ts theme={null}
const soMe = new SoMePlatformClient({
  apiKey: process.env.SOME_PARTNER_API_KEY!,
  baseUrl: "http://localhost:8000",
  timeoutMs: 15_000,
});
```

## এন্ড-টু-এন্ড ফ্লো

1. আপনার ডাটাবেসের স্থায়ী গ্রাহক ID দিয়ে একজন এন্ড ইউজার আপসার্ট করুন।
2. স্বল্পমেয়াদি একটি কানেক্ট সেশন তৈরি করুন এবং এর `connectUrl` গ্রাহকের ব্রাউজারে পাঠান।
3. OAuth সম্পন্ন হলে সেশনটি আনুন অথবা গ্রাহকের সোশ্যাল সংযোগগুলোর তালিকা দেখুন।
4. ফেরত পাওয়া কানেকশন ID ব্যবহার করে তাৎক্ষণিক বা শিডিউল করা পোস্ট তৈরি করুন।
5. স্বাক্ষরিত ওয়েবহুকের মাধ্যমে পাবলিশিংয়ের ফলাফল পান।

```ts theme={null}
const customer = await soMe.endUsers.upsert({
  externalId: "customer_123",
  displayName: "Acme",
});

const session = await soMe.connectSessions.create({
  endUserId: customer.id,
  platform: "THREADS",
  returnUrl: "https://app.example.com/settings/social",
});

// Redirect the customer's browser to session.connectUrl.
```

> **[অ্যাকাউন্ট সংযুক্ত করুন](/bn/sdk/connect-accounts.md)**
>
> এন্ড ইউজার তৈরি করুন এবং হোস্টেড OAuth ফ্লো চালান।

> **[পোস্ট পাবলিশ করুন](/bn/sdk/posts-and-media.md)**
>
> তাৎক্ষণিক পাবলিশ করুন, পোস্ট শিডিউল করুন এবং মিডিয়া আপলোড করুন।

> **[ওয়েবহুক গ্রহণ করুন](/bn/sdk/webhooks.md)**
>
> স্বাক্ষরিত ডেলিভারি পেলোড যাচাই করুন এবং রিট্রাই নিরাপদে সামলান।

> **[ইন্টিগ্রেশন সুরক্ষিত করুন](/bn/sdk/security-and-errors.md)**
>
> পার্টনার কী সুরক্ষিত রাখুন এবং API ব্যর্থতা সামলান।


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.