2013-06-06 8 views
6

छः सप्ताह या उससे अधिक के लिए, हम बिना किसी समस्या के आईट्यून्स खोज JSON API के विरुद्ध क्वेरी निष्पादित करने में सक्षम हैं। इस हफ्ते से, हमने कुछ निश्चित अनुरोधों के बाद 403 त्रुटियां देखना शुरू कर दिया (लगभग 1 के - 2 के)। हम मानते हैं कि यह एक सीमित-सीमित मुद्दा है, शायद वे एक नई नीति लागू की गई है। क्या कोई अन्य स्पष्टीकरण है जिसे हम अनदेखा कर रहे हैं?आईट्यून्स खोज JSON एपीआई सर्वर पर रिटर्न 403 वर्जित

+0

हमने 4 जून से ऐप्पल आईट्यून्स आरएसएस फ़ीड से 403 बड़े पैमाने पर अनुभव किया, यह सुनिश्चित नहीं है कि यह डब्ल्यूडब्ल्यूडीसी – tszming

उत्तर

14

जैसा कि आप मूल्य और रेटिंग प्राप्त करना चाहते हैं, मेरा अनुमान यह है कि आप आईट्यून्स खोज एपीआई के साथ एक खोज नहीं कर रहे हैं।

यदि यह धारणा सत्य है तो आप एक अल्पविराम आईडी को एक अल्पविराम से अलग करके क्वेरी में एकाधिक एडीएएम आईडी सूचीबद्ध करके "बैच" लुकअप अनुरोध कर सकते हैं।

उदाहरण के लिए। अमेरिका में इन एप्लिकेशन को दोनों के लिए परिणाम प्राप्त करने के लिए -

https://itunes.apple.com/us/app/9-innings-2013-pro-baseball/id530061728?mt=8

https://itunes.apple.com/us/app/homerun-battle-2-free/id491221570?mt=8

- यदि आप ऐसा करते हैं: https://itunes.apple.com/us/lookup?id=491221570,530061728

मेरा मानना ​​है कि सीमा प्रश्न के साथ 50 आईडी है ।

यदि approximately 900K apps currently live in the App Store हैं, तो कुछ त्वरित गणित से पता चलता है कि बैचिंग से पहले, यदि आप समान रूप से अपने अनुरोधों को फैलाते हैं तो आप ~ 625 प्रश्न/मिनट कर रहे होंगे। (900 के/24 घंटे/60 मिनट == 625)

हालांकि, यदि आप उन्हें 50 के समूहों में बैच करते हैं तो आप लगभग 13 प्रश्न/मिनट (900K/50 प्रति अनुरोध/24 घंटे/60 मिनट = = 12.5)। यह अनुमति सीमा के भीतर अच्छी तरह से होना चाहिए।

... @ क्रैशलोट - यदि आप ऐप अनुशंसाएं कर रहे हैं, तो हमें बात करनी चाहिए।

+0

यह वास्तव में एक अच्छी रणनीति की तरह लगता है, मुझे इसे भी आजमा देना होगा। –

+2

सीमा वास्तव में 200 प्रति प्रश्न है, लेकिन 403 अंक इस से संबंधित नहीं है। 403 त्रुटि एक आईडी के साथ पूछताछ के लिए भी लौटा दी जाती है, ऐप्पल HTTP अनुरोधों की संख्या पर कठोर नियम लागू कर सकता है जो खोज एपीआई – Cat

+0

में किया जा सकता है, मैंने हाल ही में इस समस्या में भाग लिया है, वे प्रति प्रश्न 200 आईडी स्वीकार करते हैं और आप केवल ऐप्पल सर्वर को 5000 प्रश्न भेजना है जो उनकी सीमा से अधिक नहीं होनी चाहिए। – benck

1

मुझे विश्वास नहीं है कि दर सीमा प्रकाशित है, लेकिन मुझे लगता है कि यह मानना ​​बहुत सुरक्षित है कि वे मौजूद हैं। आपके द्वारा चलाए जा रहे 1-2k अनुरोधों के लिए टाइमकेल क्या है - मिनट, घंटे, दिन?

ऐप्पल आपको अनुशंसात्मक प्रश्नों को रोकने के लिए कैशिंग लागू करने की सलाह देता है। यदि आप पहले से ऐसा नहीं कर रहे हैं तो आपको शायद इसमें देखना चाहिए। एक और विकल्प enterprise partner feed का उपयोग करना है, हालांकि आपको पहुंच प्राप्त करने के लिए आईट्यून्स संबद्ध होने की आवश्यकता है।

+0

से कुछ मिनटों से संबंधित है या नहीं। जब भी संभव हो हम निश्चित रूप से कैश करते हैं, लेकिन हमें आवश्यक चीजों में से एक ऐप की कीमत है, जो दैनिक बदल सकती है। जांच करने का एकमात्र तरीका हर ऐप की कीमत हर दिन लाने के लिए है। क्या आप हमारे लिए एक और विकल्प देखते हैं? धन्यवाद! – Crashalot

+0

@ क्रैशलोट - क्या आपने कई घंटों में लोड फैलाने का प्रयास किया है? क्या आप हर दिन एक ही समय में अपने सभी अनुरोधों को विस्फोट कर रहे हैं? –

+0

हाय @ टेडहोसमैन। हम लोगों को इंडी देवों से महान ऐप्स खोजने में मदद करने की कोशिश कर रहे हैं - जरूरी नहीं कि सबसे लोकप्रिय लोग। हम देख सकते हैं कि आप आईट्यून्स संबद्ध समूह में काम करते हैं और आपके इनपुट से प्यार करेंगे। रेटिंग डेटा प्राप्त करने के लिए स्वीकृत तरीका क्या है? यह ईपीएफ फाइलों में नहीं है। हम केवल JSON API का सहारा ले रहे हैं क्योंकि ऐसा लगता है कि यह रेटिंग डेटा लाने का एकमात्र तरीका है। जब हम रेटिंग डेटा लाने के लिए अनुमोदित तरीका हैं तो स्क्रिप्ट चलाते समय हम खुशी से लोड को कई घंटों में फैला सकते हैं या बदल सकते हैं। – Crashalot

संबंधित मुद्दे