2011-05-28 18 views
1

urllib2.urlopenを使用してYouTube gdata APIからデータを取得しようとすると、HTTP 403エラーが発生します。私はデバッグの目的でCSRFミドルウェアを無効にしています。使用しているビューは次のようになります。Djangoビュー内のgdata apiからデータを取得するときにHTTP 403を取得する

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) 
関連する問題