3

これが基本的なものである場合はお詫びします-私はしばらくの間、認証されたPOSTをGoogle Fusion Tablesに正常に送信して、プライベートテーブルへの挿入をテストしようとしてきました。

フュージョンテーブルのドキュメントで例とライブラリを読んだことがありますが、例は通常、select(vs. inserts)であり、Pythonで使用できるライブラリはOAuth2.0では機能しないようです。

私は成功しました-

  1. OAuth2.0で認証されています。アクセストークンと更新トークンを持っています。
  2. Googleの例から直接、次のコードを使用してプライベートテーブルでselectを実行できます。

    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 Error 401:Unauthorized

これは、同じaccess_tokenを使用してプライベートテーブルでSelectを実行できる直後です。コードまたは構文に問題があると想定しています。

また、私はPythonの初心者であり、FusionTablesの初心者です。アドバイスを事前に感謝します。

4

1 に答える 1

0

requests-oauth は一見の価値があるかもしれません: https://github.com/maraujop/requests-oauth

于 2012-07-04T05:15:19.767 に答える