我正在尝试获取我在Google地图中创建的地图列表,而Maps API会说明以下内容:
检索地图列表
Maps Data API提供了一个供稿,列出了特定用户创建的地图;这种饲料被称为“metafeed”。典型的Maps Data API元供稿是以下形式的GET请求:
默认Feed会请求与经过身份验证的用户关联的所有地图
GET http://maps.google.com/maps/feeds/maps/default/full
Authorization: GoogleLogin auth="authorization_token"
标准元供稿请求与相关用户ID相关联的所有地图
GET http://maps.google.com/maps/feeds/maps/userID/full
Authorization: GoogleLogin auth="authorization_token"
请注意,两个GET请求都需要授权HTTP标头,并传递AuthSub或GoogleLogin令牌,具体取决于您实施的身份验证方案。 (GoogleLogin令牌对应于ClientLogin身份验证过程。)
我不知道如何使用Authorization HTTP标头创建HTTP请求。我已经有代码来获取authorization_token
,如下所示:
# coding: utf-8
import urllib, re, getpass
# http://code.google.com/intl/pt-BR/apis/maps/documentation/mapsdata/developers_guide_protocol.html#ClientLogin
username = 'heltonbiker'
senha = getpass.getpass('Senha do usuário ' + username + ':')
dic = {
'accountType': 'GOOGLE',
'Email': (username + '@gmail.com'),
'Passwd': senha,
'service': 'local',
'source': 'helton-mapper-1'
}
url = 'https://www.google.com/accounts/ClientLogin?' + urllib.urlencode(dic)
output = urllib.urlopen(url).read()
authid = output.strip().split('\n')[-1].split('=')[-1]
我还看了httplib
个文档,但不太了解(我不是专业程序员)。
有任何线索吗?
答案 0 :(得分:8)
使用urllib2可以让一切变得更轻松:
import urllib2
request = urllib2.Request('http://maps.google.com/maps/feeds/maps/default/full')
request.add_header('Authorization', 'GoogleLogin auth=%s' % authorization_token)
urllib2.urlopen(request).read()
BTW,不推荐使用Google Maps Data API吗? http://googlegeodevelopers.blogspot.com/2010/11/maps-data-api-deprecation-announcement.html