3

抱歉,如果这是基本的东西 - 我已经尝试了一段时间成功地将经过身份验证的 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
    

使用以下代码进行 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 之后 - 我假设我有代码或语法问题。

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

4

1 回答 1

0

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

于 2012-07-04T05:15:19.767 回答