डिस्क एपीआई के लिए एक्सिस GET अनुरोध 403 निषिद्ध प्रतिक्रिया देता है, लेकिन पोस्टमैन में काम करता है

Aug 18 2020

मैं अपने स्थानीय वातावरण पर एपीआई एपीआई को HTTP GET अनुरोध करने के लिए axios का उपयोग कर रहा हूं।

मैं नीचे दिए गए कोड का उपयोग कर रहा हूं:

axios.get('https://discord.com/api/channels/735303230694621228', {
    withCredentials: true,
    headers: {
      Authorization: 'Bot ' + botToken,
    },
  }).then((data) => {
    res = data.response
  })

बॉट चैनल आईडी का मालिक है: 735303230694621228 और सभी सही अनुमतियाँ हैं।

वास्तविक परिणाम:

प्रीफ़लाइट अनुरोध (विकल्प) सभी सही हेडर के साथ 200 की प्रतिक्रिया देता है।

प्रीफ़्लाइट के बाद, GET अनुरोध होगा और मुझे निम्नलिखित प्रतिक्रिया देगा:

403 Forbidden

ब्राउज़र भी एक CORS त्रुटि देगा, लेकिन मुझे पूरा यकीन है कि 403 प्रतिक्रिया के कारण, क्योंकि 403 सभी सही CORS हेडर नहीं देता है।

अपेक्षित परिणाम:

Status 200 OK

मैं कोशिश करूँगा https://discord.com/api/channels/735303230694621228 पोस्टमैन के साथ एक ही बॉट टोकन के साथ और यह मुझे अपेक्षित बॉडी के साथ 200 का जवाब देता है।

किसी को भी मुझे पता नहीं क्यों मैं एक 403 हो रही है जब मैं अपने स्थानीय वातावरण पर ब्राउज़र के साथ axios का उपयोग करता हूं, लेकिन मुझे पोस्टमैन के साथ 200 की प्रतिक्रिया मिल रही है?

जवाब

1 jakxnz Aug 20 2020 at 05:45

एक साथ कलह प्रतिक्रिया 403के लिए कुछ User-Agent पर रों कुछ एपीआई संसाधनों।

इसका परीक्षण करने के लिए, अपने User-Agentहेडर के साथ पोस्टमैन अनुरोध को उस मान पर सेट करें जो किसी ब्राउज़र जैसे से मेल खाता होUser-Agent: Mozilla/5.0

अफसोस की बात है, ब्राउज़र User-Agentहेडर को एक में ओवरराइड करेगा axios.get(), भले ही आप अपने .get()कॉन्फ़िगरेशन में से एक को परिभाषित करें ।

ऊपर क्यों Postman ( User-Agent: PostmanRuntime/7.0.0) एक 200प्रतिक्रिया प्राप्त करता है , लेकिन आपके ब्राउज़र ( User-Agent: Mozilla/5.0) एक प्राप्त करता है 403


यह ध्यान देने योग्य है कि डिस्कवर्ड एपीआई प्रलेखन इसकी व्याख्या नहीं करता है (अगस्त 2020 में)https://discord.com/developers/docs/resources/channel#get-channel