Python中经过身份验证的POST,可插入到Google Fusion Tables中

时间:2012-07-04 02:50:36

标签: python post insert google-fusion-tables

道歉,如果这是基本的东西 - 我已经尝试了一段时间成功将经过身份验证的POST发送到Google Fusion Tables以测试插入到私人表中。

已阅读融合表文档中的示例和库 - 但示例通常似乎是选择(与插入相比),而且可用于Python的库似乎不适用于OAuth 2.0。

我成功了 -

  1. 使用OAuth 2.0进行身份验证。有访问令牌和刷新令牌。
  2. 我可以直接在Google示例中使用以下代码在私人桌面上进行选择:

    request = urllib2.Request(
    url='https://www.google.com/fusiontables/api/query?%s' % \
    (urllib.urlencode({'access_token': access_token,
                       'sql': 'SELECT * FROM 1cRYFfBB_nA0qUSAe6R8vI96G2yxIULrX92FOum4'})))
    request_open = urllib2.urlopen(request)
    response = request_open.read()
    request_open.close()
    print response
    
  3. 使用以下代码进行POST

    import httplib, urllib, urllib2
    query = 'INSERT INTO 1cRYFfBB_nA0qUSAe6R8vI96G2yxIULrX92FOum4 (locations, strings, numbers) VALUES (1,2,3);'
    data = urllib.urlencode({'sql': query})
    URL = 'https://www.googleapis.com/fusiontables/v1/query'
    headers = {
          'Authorization': 'GoogleLogin auth=' + access_token,
          'Content-Type': 'application/x-www-form-urlencoded',
        }
        serv_req = urllib2.Request(url=URL, data=data, headers=headers)
        serv_resp = urllib2.urlopen(serv_req)
    

    我收到HTTPError:HTTP错误401:未经授权

    这是我可以在具有相同access_token的私有表上运行Select之后 - 我假设我有代码或sytax问题。

    另外 - 我是Python新手和Fusion Tables新手 - 提前感谢任何建议。

1 个答案:

答案 0 :(得分:0)

requests-oauth可能值得一看:https://github.com/maraujop/requests-oauth