这是谷歌通过python访问Fusion表格中的示例代码的更改代码。我想在融合表中创建表,然后插入数据...使用post请求我设法编写以下代码,通过发送post请求创建表。但是这个 返回“无效凭据”错误,位置为>头。请帮助...或建议一个简单的代码来创建表并插入Fusion表(数据在txt文件中)。我对此很新。请帮忙。
完成CODe:
#!/usr/bin/python
# Copyright (C) 2011 Google Inc.
""" Demostrates use of the new Fusion Tables API
"""
import urllib2, urllib, simplejson, sys, httplib
client_id = "996027904153.apps.googleusercontent.com"
client_secret = "secret-given"#
redirect_uri = "my localhost"
api_key = "my api_key is given"
tableid = "1jCqbPu5PjNsczx7cDl3y9EJtSUgNePbvXT7-x70"
class RunAPITest:
def __init__(self):
self.access_token = ""
self.params = ""
def main(self):
print "copy and paste the url below into browser address bar and hit enter"
print "https://accounts.google.com/o/oauth2/auth?%s%s%s%s" % \
("client_id=%s&" % (client_id),"redirect_uri=%s&" % (redirect_uri),
"scope=https://www.googleapis.com/auth/fusiontables&","response_type=code")
code = raw_input("Enter code (parameter of URL): ")
data = urllib.urlencode({
"code": code,
"client_id": client_id,
"client_secret": client_secret,
"redirect_uri": redirect_uri,
"grant_type": "authorization_code"
})
serv_req = urllib2.Request(url="https://accounts.google.com/o/oauth2/token",
data=data)
serv_resp = urllib2.urlopen(serv_req)
response = serv_resp.read()
tokens = simplejson.loads(response)
access_token = tokens["access_token"]
print access_token
self.access_token = access_token
print "CREATE TABLE"
data='''{ "name": "Insects","columns": [{"name": "Species","type": "STRING"},{"name": "Elevation","type": "NUMBER"},{"name": "Year","type": "DATETIME"}],"description": "Insect Tracking Information.","isExportable": "true"}'''
headers={}
headers['Authorization']=access_token
headers['Content-Type']='application/json'
print headers
response = self.runRequest("POST","/fusiontables/v1/tables/",data,headers)
json_response = simplejson.loads(response)
return json_response
def runRequest(self, method, url, data=None, headers=None):
request = httplib.HTTPSConnection("www.googleapis.com")
if data and headers:
request.request(method, url, data, headers)
else:
request.request(method, url)
response = request.getresponse()
print response.status, response.reason
response = response.read()
print response
return response
if __name__ == "__main__":
api_test = RunAPITest()
api_test.main()