> ## Documentation Index
> Fetch the complete documentation index at: https://generaltranslation.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# एकीकरण मार्गदर्शिका

export const Button = ({href, children}) => {
  return <div className="not-prose group">
    <a href={href}>
      <button className="flex items-center space-x-2.5 py-1 px-4 bg-primary-dark dark:bg-white text-white dark:text-gray-950 rounded-full group-hover:opacity-[0.9] font-medium">
        <span>
          {children}
        </span>
        <svg width="3" height="24" viewBox="0 -9 3 24" class="h-6 rotate-0 overflow-visible"><path d="M0 0L3 3L0 6" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg>
      </button>
    </a>
  </div>;
};

यह पेज आपके सिस्टम में manage पोस्ट्स एंडपॉइंट्स को एकीकृत करने के लिए उपयोगी टूल्स और प्रमुख अवधारणाओं के बारे में बताता है।

***

<div id="helpful-tools">
  ## उपयोगी टूल
</div>

इस एंडपॉइंट को इंटीग्रेट करने में मदद करने वाली कुछ प्रमुख अवधारणाओं पर जाने से पहले, हम सुझाव देते हैं कि आप निम्नलिखित से परिचित हो जाएँ:

<div id="postman">
  ### Postman
</div>

Postman एक बेहतरीन टूल है, जिसका इस्तेमाल आप किसी एंडपॉइंट को टेस्ट करने के लिए कर सकते हैं। हर Postman अनुरोध में सभी path और body parameters शामिल होते हैं, ताकि आप जल्दी से समझ सकें कि आपके लिए क्या उपलब्ध है। हमारी Postman collections के बारे में अधिक जानने के लिए, कृपया हमारा ["Postman का इस्तेमाल करना"](/hi/tutorials/postman-getting-started) पेज देखें।

<div id="code-samples">
  ### कोड नमूने
</div>

क्या आप अपनी पसंदीदा कोडिंग भाषा में कुछ कोड के साथ इस एंडपॉइंट को सेट अप करना चाहते हैं? हमारे [Github page](https://github.com/xdevplatform/Twitter-API-v2-sample-code) पर कई अलग-अलग कोड नमूने उपलब्ध हैं, जिन्हें आप शुरुआती बिंदु के रूप में इस्तेमाल कर सकते हैं।

<div id="third-party-libraries">
  ### तृतीय-पक्ष लाइब्रेरी
</div>

शुरुआत करने में मदद के लिए हमारे समुदायों की [तृतीय-पक्ष लाइब्रेरी](/hi/x-api/tools-and-libraries/overview) में से किसी एक का उपयोग करें। सही version tag देखकर आप ऐसी लाइब्रेरी ढूँढ़ सकते हैं जो v2 एंडपॉइंट्स के साथ काम करती है।

<div id="key-concepts">
  ## प्रमुख अवधारणाएँ
</div>

<div id="authentication">
  ### प्रमाणीकरण
</div>

सभी X API v2 एंडपॉइंट्स के लिए आवश्यक है कि आप अपने अनुरोधों को क्रेडेंशियल्स के एक सेट, जिन्हें keys और tokens भी कहा जाता है, के साथ प्रमाणित करें।

इन विशिष्ट एंडपॉइंट्स के लिए [OAuth 1.0a User Context](/hi/resources/fundamentals/authentication) का उपयोग आवश्यक है, जिसका अर्थ है कि सफल अनुरोध करने के लिए आपको API keys और उपयोगकर्ता एक्सेस टोकन के एक सेट का उपयोग करना होगा। Access Tokens उस उपयोगकर्ता से संबद्ध होने चाहिए, जिसकी ओर से आप अनुरोध कर रहे हैं। यदि आप किसी अन्य उपयोगकर्ता के लिए Access Tokens का एक सेट जनरेट करना चाहते हैं, तो उस उपयोगकर्ता को [3-legged OAuth flow](/hi/resources/fundamentals/authentication#obtaining-access-tokens-using-3-legged-oauth-flow) का उपयोग करके आपके ऐप को अधिकृत या प्रमाणित करना होगा।

कृपया ध्यान दें कि OAuth 1.0a का उपयोग करना कठिन हो सकता है। यदि आप इस प्रमाणीकरण विधि से परिचित नहीं हैं, तो हम अनुशंसा करते हैं कि आप [library](/hi/x-api/tools-and-libraries/overview) का उपयोग करें, Postman जैसे किसी टूल का इस्तेमाल करें, या अपने अनुरोधों को प्रमाणित करने के लिए OAuth 2.0 का उपयोग करें।

[OAuth 2.0 Authorization Code with PKCE](/hi/resources/fundamentals/authentication#oauth-2-0-authorization-code-flow-with-pkce-2) किसी application के scope पर अधिक नियंत्रण और कई डिवाइसों पर authorization flow की सुविधा देता है। OAuth 2.0 आपको विशिष्ट, सूक्ष्म scopes चुनने देता है, जो किसी उपयोगकर्ता की ओर से आपको खास permissions प्रदान करते हैं।

अपने ऐप में OAuth 2.0 सक्षम करने के लिए, आपको डेवलपर कंसोल के App settings section में मौजूद अपने App की authentication settings में इसे सक्षम करना होगा।

<div id="developer-console-projects-and-developer-apps">
  ### डेवलपर कंसोल, प्रोजेक्ट्स और डेवलपर ऐप्स
</div>

प्रमाणीकरण क्रेडेंशियल्स का ऐसा सेट प्राप्त करने के लिए, जो X API v2 एंडपॉइंट्स के साथ काम करे, आपके पास एक \[डेवलपर खाता]/resources/fundamentals/developer-portal) होना चाहिए, उस खाते के भीतर एक [प्रोजेक्ट](/hi/resources/fundamentals/developer-apps) सेट अप होना चाहिए, और उस प्रोजेक्ट के भीतर एक [डेवलपर ऐप](/hi/resources/fundamentals/developer-apps) बनाया गया होना चाहिए। इसके बाद, आप अपने डेवलपर ऐप के भीतर अपनी कीज़ और टोकन पा सकते हैं।

<div id="rate-limits">
  ### रेट लिमिट्स
</div>

हर दिन, हज़ारों डेवलपर X API को अनुरोध भेजते हैं। इन अनुरोधों की बड़ी मात्रा को प्रबंधित करने में मदद के लिए, प्रत्येक एंडपॉइंट पर [रेट लिमिट्स](https://developer.x.com/x-api/fundamentals/rate-limits) लागू की जाती हैं, जो उन अनुरोधों की संख्या को सीमित करती हैं जिन्हें आप अपने ऐप की ओर से या किसी प्रमाणीकृत उपयोगकर्ता की ओर से भेज सकते हैं।

इन एंडपॉइंट्स पर उपयोगकर्ता-स्तर की रेट लिमिट लागू होती है। इसका मतलब है कि जिस प्रमाणीकृत उपयोगकर्ता की ओर से आप अनुरोध कर रहे हैं, वह किसी भी डेवलपर ऐप में इस एंडपॉइंट को केवल सीमित संख्या में ही कॉल कर सकता है। POST method के लिए उपयोगकर्ता रेट लिमिट 15 मिनट में 200 अनुरोध है। DELETE method की रेट लिमिट 15 मिनट में 50 अनुरोध है। इसके अलावा, [3 घंटे में 300 अनुरोध](https://blog.x.com/developer/en_us/topics/tools/2018/new-developer-requirements-to-protect-our-platform) की भी सीमा है, जिसमें manage पोस्ट्स या manage Retweets के ज़रिए बनाई गई पोस्ट्स भी शामिल हैं।

<div id="source-labels">
  ### स्रोत लेबल
</div>

आपके ऐप का नाम और वेबसाइट URL, आपके एप्लिकेशन द्वारा प्रोग्रामेटिक रूप से बनाई गई किसी भी पोस्ट के मेटाडेटा में [स्रोत लेबल](https://help.x.com/en/using-twitter/how-to-tweet#source-labels) के रूप में दिखाई देंगे। यदि आप किसी X ऐप का यूज़ केस बदलते हैं, तो [Developer Terms](https://developer.x.com/content/developer-twitter/en/developer-terms/agreement-and-policy) के अनुपालन को सुनिश्चित करने के लिए इन सेटिंग्स में उसे भी अवश्य अपडेट करें।

<div id="profile-settings">
  ### प्रोफ़ाइल सेटिंग्स
</div>

आप पोस्ट्स में स्थान केवल तभी जोड़ सकते हैं, जब आपकी प्रोफ़ाइल सेटिंग्स में geo सक्षम हो। यदि geo सक्षम नहीं है, तब भी आप अपने अनुरोध बॉडी में location पैरामीटर जोड़ सकते हैं, लेकिन वह आपकी पोस्ट्स से संलग्न नहीं होगा। यही बात इमेज में उपयोगकर्ताओं को टैग करने पर भी लागू होती है। यदि जिस उपयोगकर्ता को आप टैग कर रहे हैं, उसके लिए photo-tagging सक्षम नहीं है, तो पोस्ट सफलतापूर्वक बन जाने पर भी उसका नाम टैग किए गए उपयोगकर्ताओं की सूची में दिखाई नहीं देगा।

<div id="adding-media-to-a-post">
  ### किसी पोस्ट में मीडिया जोड़ना
</div>

फ़िलहाल, X API के v2 का उपयोग करके मीडिया को पूरी तरह अपलोड करने का कोई तरीका नहीं है। हालांकि, आप पहले से अपलोड किए गए मीडिया को किसी पोस्ट के साथ संलग्न कर सकते हैं। आप उन मीडिया id का उपयोग कर सकते हैं जिन्हें पहले [v1 media एंडपॉइंट](https://developer.x.com/en/docs/twitter-api/v1/media/upload-media/api-reference/post-media-upload) या [X Media Studio](https://media.x.com/en/articles/products/2018/media-studio) का उपयोग करके अपलोड किया गया है। ये मीडिया id आपके अपने होने चाहिए या किसी प्रमाणीकृत उपयोगकर्ता के होने चाहिए।

***

<div id="code-examples">
  ## कोड उदाहरण
</div>

<div id="create-a-post">
  ### एक पोस्ट बनाएँ
</div>

<CodeGroup dropdown>
  ```bash cURL theme={null}
  curl -X POST "https://api.x.com/2/tweets" \
    -H "Authorization: OAuth ..." \
    -H "Content-Type: application/json" \
    -d '{"text": "Hello world!"}'
  ```

  ```python Python SDK theme={null}
  from xdk import Client
  from xdk.oauth1_auth import OAuth1

  oauth1 = OAuth1(
      api_key="YOUR_API_KEY",
      api_secret="YOUR_API_SECRET",
      access_token="YOUR_ACCESS_TOKEN",
      access_token_secret="YOUR_ACCESS_TOKEN_SECRET"
  )

  client = Client(auth=oauth1)

  # एक पोस्ट बनाएँ
  response = client.posts.create(text="Hello world!")
  print(f"बनाई गई पोस्ट: {response.data.id}")
  ```

  ```javascript JavaScript SDK theme={null}
  import { Client, OAuth1 } from "@xdevplatform/xdk";

  const oauth1 = new OAuth1({
    apiKey: "YOUR_API_KEY",
    apiSecret: "YOUR_API_SECRET",
    accessToken: "YOUR_ACCESS_TOKEN",
    accessTokenSecret: "YOUR_ACCESS_TOKEN_SECRET",
  });

  const client = new Client({ oauth1 });

  // एक पोस्ट बनाएँ
  const response = await client.posts.create({ text: "Hello world!" });
  console.log(`बनाई गई पोस्ट: ${response.data?.id}`);
  ```
</CodeGroup>

<div id="create-a-reply">
  ### जवाब बनाएँ
</div>

<CodeGroup dropdown>
  ```bash cURL theme={null}
  curl -X POST "https://api.x.com/2/tweets" \
    -H "Authorization: OAuth ..." \
    -H "Content-Type: application/json" \
    -d '{"text": "This is a reply!", "reply": {"in_reply_to_tweet_id": "1234567890"}}'
  ```

  ```python Python SDK theme={null}
  from xdk import Client
  from xdk.oauth1_auth import OAuth1

  oauth1 = OAuth1(
      api_key="YOUR_API_KEY",
      api_secret="YOUR_API_SECRET",
      access_token="YOUR_ACCESS_TOKEN",
      access_token_secret="YOUR_ACCESS_TOKEN_SECRET"
  )

  client = Client(auth=oauth1)

  # जवाब बनाएँ
  response = client.posts.create(
      text="This is a reply!",
      reply={"in_reply_to_tweet_id": "1234567890"}
  )
  print(f"Created reply: {response.data.id}")
  ```

  ```javascript JavaScript SDK theme={null}
  import { Client, OAuth1 } from "@xdevplatform/xdk";

  const oauth1 = new OAuth1({
    apiKey: "YOUR_API_KEY",
    apiSecret: "YOUR_API_SECRET",
    accessToken: "YOUR_ACCESS_TOKEN",
    accessTokenSecret: "YOUR_ACCESS_TOKEN_SECRET",
  });

  const client = new Client({ oauth1 });

  // जवाब बनाएँ
  const response = await client.posts.create({
    text: "This is a reply!",
    reply: { inReplyToTweetId: "1234567890" },
  });
  console.log(`Created reply: ${response.data?.id}`);
  ```
</CodeGroup>

<div id="delete-a-post">
  ### कोई पोस्ट हटाएँ
</div>

<CodeGroup dropdown>
  ```bash cURL theme={null}
  curl -X DELETE "https://api.x.com/2/tweets/1234567890" \
    -H "Authorization: OAuth ..."
  ```

  ```python Python SDK theme={null}
  from xdk import Client
  from xdk.oauth1_auth import OAuth1

  oauth1 = OAuth1(
      api_key="YOUR_API_KEY",
      api_secret="YOUR_API_SECRET",
      access_token="YOUR_ACCESS_TOKEN",
      access_token_secret="YOUR_ACCESS_TOKEN_SECRET"
  )

  client = Client(auth=oauth1)

  # कोई पोस्ट हटाएँ
  response = client.posts.delete("1234567890")
  print(f"Deleted: {response.data.deleted}")
  ```

  ```javascript JavaScript SDK theme={null}
  import { Client, OAuth1 } from "@xdevplatform/xdk";

  const oauth1 = new OAuth1({
    apiKey: "YOUR_API_KEY",
    apiSecret: "YOUR_API_SECRET",
    accessToken: "YOUR_ACCESS_TOKEN",
    accessTokenSecret: "YOUR_ACCESS_TOKEN_SECRET",
  });

  const client = new Client({ oauth1 });

  // कोई पोस्ट हटाएँ
  const response = await client.posts.delete("1234567890");
  console.log(`Deleted: ${response.data?.deleted}`);
  ```
</CodeGroup>

**अगले चरण**

[API संदर्भ](/hi/x-api/posts/manage-tweets#manage-tweets-api-reference-index)
