2011-05-28 1 views
1

При попытке извлечь данные из gtata gtata youtube с помощью urllib2.urlopen, я получаю ошибку HTTP 403. Я выключил CSRF промежуточное программное обеспечение для отладки, и вид я использую выглядит следующим образом:Получение HTTP 403 при извлечении данных из gdata api в представлении Django

def videos (request): 
    params = {} 
    youtube_search_url = 'http://gdata.youtube.com/feeds/api/videos' 
    params['order_by'] = 'relevance' 
    params['max_results'] = 10 
    params['safeSearch'] = 'strict' 
    params['v'] = 2 
    params['key'] = '<developer key>' 
    f = urllib2.urlopen(youtube_search_url, encoded_params) 
    ... 

Любые идеи?

ответ

1
When you make an API request, use the X-GData-Key request header to specify your developer key as shown in the following example: 

X-GData-Key: key=<developer_key> 

Include the key query parameter in the request URL. 

http://gdata.youtube.com/feeds/api/videos?q=SEARCH_TERM&key=DEVELOPER_KEY 

^^ Прямо из уст лошади. Вам не хватает заголовка запроса X-GData-Key. Ключ, как представляется, требуется как в URL-адресе, так и в заголовке, поэтому с учетом предыдущего кода попробуйте следующее:

req = urllib2.Request(youtube_search_url, encoded_params, { "X-GData-Key": '<developer key>' }) 
f = urllib2.urlopen(req) 

 Смежные вопросы

  • Нет связанных вопросов^_^