开发者

Getting HTTP 403 when pulling data from gdata api within a Django view

When trying to pull data from the youtube gdata api using urllib2.urlopen, I receive a HTTP 403 error. I've turned off the CSRF middleware for debugging purposes, and the view I'm using looks like this:

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>'
开发者_如何学C    f = urllib2.urlopen(youtube_search_url, encoded_params)
    ...

Any ideas?


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

^^ Straight from the horse's mouth. You are missing the X-GData-Key request header. The key seems to be required in both url and the header, so given your previous code try this:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜