2013-06-06 34 views
6

Trong sáu tuần hoặc lâu hơn, chúng tôi đã có thể thực hiện các truy vấn đối với API tìm kiếm của API JSON mà không gặp vấn đề gì. Bắt đầu từ tuần này, chúng tôi bắt đầu thấy 403 lỗi sau một số yêu cầu nhất định (khoảng 1K - 2K). Chúng tôi giả định đây là một vấn đề hạn chế tốc độ, có lẽ là một chính sách mới mà họ đã thực hiện. Có một lời giải thích khác mà chúng ta đang xem không?Tìm kiếm trên iTunes API JSON trả về 403 bị cấm trên máy chủ

+0

Chúng tôi cũng đã trải nghiệm 403 lớn từ nguồn cấp dữ liệu Apple iTunes RSS bắt đầu từ ngày 4 tháng 6, không chắc chắn liệu nó có liên quan đến WWDC – tszming

Trả lời

14

Khi bạn đang tìm cách để có được giá và xếp hạng, tôi đoán là bạn đang thực hiện tra cứu, không phải tìm kiếm, với API tìm kiếm iTunes.

Nếu giả định đó là đúng thì bạn có thể yêu cầu tra cứu "lô" bằng cách liệt kê nhiều ID ADAM trong truy vấn bằng cách tách chúng bằng dấu phẩy.

ví dụ: Để có được kết quả cho cả hai ứng dụng ở Mỹ -

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

- bạn muốn làm điều này: https://itunes.apple.com/us/lookup?id=491221570,530061728

Tôi tin rằng giới hạn là 50 id cho mỗi truy vấn .

Nếu có approximately 900K apps currently live in the App Store, một số phép toán nhanh cho thấy rằng trước khi tạo nhóm, nếu bạn phân tán đồng đều các yêu cầu của bạn, bạn sẽ thực hiện ~ 625 truy vấn/phút. (900K/24 giờ/60 phút == 625)

Tuy nhiên, nếu bạn nhóm chúng theo nhóm 50 thì bạn đang xem khoảng 13 truy vấn/phút (900K/50 theo yêu cầu/24 giờ/60 phút = = 12.5). Điều này nên được tốt trong giới hạn cho phép.

... @ Crashalot - nếu bạn đang thực hiện các đề xuất ứng dụng, thì chúng ta nên nói chuyện.

+0

Điều này nghe có vẻ giống như một chiến lược thực sự tốt, tôi sẽ phải cố gắng này quá. –

+2

Giới hạn thực sự là 200 cho mỗi truy vấn, nhưng vấn đề 403 không liên quan đến điều này. Lỗi 403 được trả lại ngay cả đối với các truy vấn có một id, Apple có thể đang thực thi các quy tắc chặt chẽ hơn về số lượng yêu cầu HTTP có thể được thực hiện cho API tìm kiếm – Cat

+0

Tôi vừa gặp phải vấn đề này gần đây, họ chấp nhận 200 id cho mỗi truy vấn và bạn chỉ phải gửi 5000 truy vấn đến máy chủ Apple không được vượt quá giới hạn của chúng. – benck

1

Tôi không tin rằng có bất kỳ giới hạn tỷ lệ nào được xuất bản, nhưng tôi nghĩ rằng nó khá an toàn để giả sử chúng tồn tại. Thời gian cho 1-2k yêu cầu bạn đang chạy - phút, giờ, ngày là bao nhiêu?

Apple khuyên bạn nên triển khai bộ nhớ đệm để ngăn các truy vấn không cần thiết. Nếu bạn không làm điều này thì có lẽ bạn nên xem xét nó. Một tùy chọn khác là sử dụng enterprise partner feed, mặc dù bạn cần phải là một chi nhánh iTunes để truy cập.

+0

đó là phút hay không. chúng tôi chắc chắn lưu vào bộ nhớ cache khi có thể, nhưng một trong những thứ chúng tôi cần là giá của ứng dụng, có thể thay đổi hàng ngày. cách duy nhất để kiểm tra là tìm nạp mọi giá của ứng dụng mỗi ngày. bạn có thấy tùy chọn khác cho chúng tôi không? cảm ơn! – Crashalot

+0

@Crashalot - bạn đã thử truyền tải tải trong vài giờ chưa? Bạn có nổ mìn tất cả các yêu cầu của bạn cùng một lúc mỗi ngày không? –

+0

hi @TedHosmann. chúng tôi đang cố gắng giúp mọi người khám phá các ứng dụng tuyệt vời từ những người độc lập - không nhất thiết là những ứng dụng phổ biến nhất. chúng ta có thể thấy rằng bạn làm việc trong nhóm liên kết itunes và rất thích đầu vào của bạn. cách bị xử phạt để nhận dữ liệu xếp hạng là gì? nó không có trong các tệp EPF. chúng tôi chỉ đang sử dụng API JSON vì có vẻ như đây là cách duy nhất để tìm nạp dữ liệu xếp hạng. chúng tôi có thể vui vẻ trải đều tải trong vài giờ hoặc thay đổi khi tập lệnh chạy nếu đó là cách được chấp thuận để tìm nạp dữ liệu xếp hạng. – Crashalot

Các vấn đề liên quan