> ## 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.

# ऐप्स

> X API तक पहुँचने के लिए ऐप्स बनाएँ और कॉन्फ़िगर करें

ऐप्स आपके API क्रेडेंशियल्स को रखने के कंटेनर होते हैं। हर ऐप की अपनी कुंजियाँ, टोकन और सेटिंग्स होती हैं।

***

<div id="app-credentials">
  ## ऐप क्रेडेंशियल
</div>

जब आप एक ऐप बनाते हैं, तो आप ये क्रेडेंशियल जनरेट कर सकते हैं:

| क्रेडेंशियल               | उपयोग                                                                                                              |
| :------------------------ | :----------------------------------------------------------------------------------------------------------------- |
| **API Key & Secret**      | OAuth 1.0a के साथ प्रमाणित करें। अनुरोधों पर हस्ताक्षर करने या उपयोगकर्ता टोकन जनरेट करने के लिए इस्तेमाल होता है। |
| **Access Token & Secret** | अपने खाते की ओर से अनुरोध करें (OAuth 1.0a)।                                                                       |
| **Client ID & Secret**    | OAuth 2.0 के साथ प्रमाणित करें। ऑथराइज़ेशन कोड फ़्लो के लिए इस्तेमाल होता है।                                      |
| **Bearer Token**          | सार्वजनिक डेटा एंडपॉइंट के लिए केवल-ऐप प्रमाणीकरण।                                                                 |

<Tip>
  नए प्रोजेक्ट के लिए **OAuth 2.0** चुनें। यह अधिक सूक्ष्म स्कोप प्रदान करता है और X API v2 के user-context एंडपॉइंट के लिए आवश्यक है।
</Tip>

***

<div id="creating-an-app">
  ## एक ऐप बनाना
</div>

<Steps>
  <Step title="डेवलपर कंसोल खोलें">
    [console.x.com](https://console.x.com) पर जाएँ और साइन इन करें।
  </Step>

  <Step title="Create App पर क्लिक करें">
    अपने ऐप के लिए नाम, विवरण और उपयोग का उद्देश्य दर्ज करें।
  </Step>

  <Step title="क्रेडेंशियल जनरेट करें">
    ऐप बनने के बाद, अपनी ज़रूरत के अनुसार keys और tokens जनरेट करें।
  </Step>

  <Step title="सुरक्षित रूप से सहेजें">
    क्रेडेंशियल तुरंत सहेज लें—वे केवल एक बार दिखाए जाते हैं।
  </Step>
</Steps>

***

<div id="app-permissions-oauth-10a">
  ## ऐप अनुमतियाँ (OAuth 1.0a)
</div>

OAuth 1.0a ऐप्स के लिए अनुमति के तीन स्तर होते हैं:

<Tabs>
  <Tab title="केवल पढ़ने की अनुमति">
    * पोस्ट्स, उपयोगकर्ताओं और सार्वजनिक डेटा को देखें
    * पोस्ट, लाइक या किसी भी चीज़ में बदलाव नहीं कर सकते
    * डायरेक्ट मैसेजेस ऐक्सेस नहीं कर सकते
  </Tab>

  <Tab title="पढ़ने और लिखने की अनुमति">
    * पढ़ने की सभी अनुमतियाँ
    * पोस्ट्स करें और पोस्ट्स हटाएँ
    * उपयोगकर्ताओं को फ़ॉलो/अनफ़ॉलो करें
    * लाइक और रीपोस्ट करें
    * डायरेक्ट मैसेजेस ऐक्सेस नहीं कर सकते
  </Tab>

  <Tab title="पढ़ने, लिखने और DMs की अनुमति">
    * पढ़ने और लिखने की सभी अनुमतियाँ
    * डायरेक्ट मैसेजेस भेजें और पढ़ें
  </Tab>
</Tabs>

<Note>
  अनुमतियाँ बदलने पर, अपडेट किए गए स्कोप वाले नए टोकन पाने के लिए उपयोगकर्ताओं को आपके ऐप को फिर से अधिकृत करना होगा।
</Note>

***

<div id="oauth-20-app-types">
  ## OAuth 2.0 ऐप के प्रकार
</div>

OAuth 2.0 कॉन्फ़िगर करते समय, अपने ऐप का type चुनें:

| प्रकार                | क्लाइंट   | उपयोग                                                                 |
| :-------------------- | :-------- | :-------------------------------------------------------------------- |
| **वेब ऐप**            | गोपनीय    | सर्वर-साइड ऐप्लिकेशन, जो secrets को सुरक्षित रूप से स्टोर कर सकते हैं |
| **ऑटोमेटेड ऐप / बॉट** | गोपनीय    | सर्वर पर चलने वाले बॉट और ऑटोमेटेड सेवाएँ                             |
| **नेटिव ऐप**          | सार्वजनिक | मोबाइल या डेस्कटॉप ऐप, जो secrets को सुरक्षित नहीं रख सकते            |
| **सिंगल पेज ऐप**      | सार्वजनिक | ब्राउज़र-आधारित JavaScript ऐप                                         |

**गोपनीय क्लाइंट्स** को Client Secret मिलता है। **सार्वजनिक क्लाइंट्स** केवल PKCE का उपयोग करते हैं।

***

<div id="callback-urls">
  ## कॉलबैक URL
</div>

OAuth फ़्लो के लिए कॉलबैक URL (redirect URI) आवश्यक हैं। उपयोगकर्ता द्वारा आपके ऐप को अधिकृत करने के बाद, उन्हें ऑथराइज़ेशन कोड के साथ आपके कॉलबैक URL पर पुनर्निर्देशित किया जाता है।

<div id="requirements">
  ### आवश्यकताएँ
</div>

* डेवलपर कंसोल में अपने ऐप की allowlist में कॉलबैक URLs जोड़ें
* URLs बिल्कुल सटीक रूप से मेल खाने चाहिए (अंत में आने वाले slash सहित)
* प्रति ऐप अधिकतम **10 कॉलबैक URLs**
* production में `https://` का उपयोग करें
* local development के लिए `http://127.0.0.1` का उपयोग करें (`localhost` नहीं)

<div id="disallowed-protocols">
  ### निषिद्ध प्रोटोकॉल
</div>

इन प्रोटोकॉल का उपयोग नहीं किया जा सकता: `javascript`, `data`, `file`, `ftp`, `mailto`, `telnet`, और अन्य गैर-मानक स्कीम।

<Accordion title="निषिद्ध प्रोटोकॉल की पूरी सूची">
  `vbscript`, `javascript`, `vbs`, `data`, `mocha`, `keyword`, `livescript`, `ftp`, `file`, `gopher`, `acrobat`, `callto`, `daap`, `itpc`, `itms`, `firefoxurl`, `hcp`, `ldap`, `mailto`, `mmst`, `mmsu`, `msbd`, `rtsp`, `mso-offdap`, `snews`, `news`, `nntp`, `outlook`, `stssync`, `rlogin`, `telnet`, `tn3270`, `shell`, `sip`
</Accordion>

***

<div id="best-practices">
  ## सर्वोत्तम तरीके
</div>

<CardGroup cols={2}>
  <Card title="अलग-अलग ऐप्स इस्तेमाल करें" icon="layer-group">
    डेवलपमेंट, स्टेजिंग और प्रोडक्शन के लिए अलग-अलग ऐप्स बनाएं।
  </Card>

  <Card title="क्रेडेंशियल्स बदलते रहें" icon="arrows-rotate">
    समय-समय पर कुंजियां फिर से जनरेट करें, और अगर इनके समझौता हो जाने का संदेह हो, तो भी ऐसा करें।
  </Card>

  <Card title="न्यूनतम अनुमतियाँ" icon="shield-check">
    केवल उन्हीं अनुमतियों का अनुरोध करें जिनकी आपके ऐप को वास्तव में ज़रूरत है।
  </Card>

  <Card title="उपयोग की निगरानी करें" icon="chart-simple">
    API उपयोग को ट्रैक करने के लिए डेवलपर कंसोल नियमित रूप से जांचें।
  </Card>
</CardGroup>

***

<div id="automated-account-labels">
  ## स्वचालित अकाउंट लेबल
</div>

यदि आपका ऐप किसी बॉट अकाउंट को चलाता है, तो आप उसे स्वचालित के तौर पर लेबल कर सकते हैं:

1. अपने बॉट अकाउंट की **Settings** पर जाएँ
2. **Your account** → **Automation** चुनें
3. अपने प्रबंधक अकाउंट को लिंक करें

इससे उपयोगकर्ताओं का भरोसा बढ़ता है और आपका बॉट स्पैम से अलग पहचाना जाता है।

***

<div id="troubleshooting">
  ## समस्या निवारण
</div>

<Accordion title="Callback URL स्वीकृत न होने की त्रुटि">
  सुनिश्चित करें कि आपका कॉलबैक URL डेवलपर कंसोल में ठीक उसी तरह पंजीकृत है, जिसमें प्रोटोकॉल और अंत में लगने वाले किसी भी slash सहित सब कुछ शामिल हो। URL को query parameter के रूप में पास करते समय उसे HTTP-encode करें।

  ```json theme={null}
  {
    "errors": [{
      "code": 415,
      "message": "Callback URL not approved for this client application."
    }]
  }
  ```
</Accordion>

<Accordion title="ऐप निलंबित है">
  अगर आपका ऐप निलंबित दिखता है, तो X प्लेटफ़ॉर्म टीम से आए सूचना संदेश के लिए अपना ईमेल देखें। अपील करने के लिए [Platform Help Form](https://help.x.com/forms/platform) का उपयोग करें।
</Accordion>
