1

'fusion_tables' gemのドキュメントに従って、これが私のコードです。もちろん、このコードにはユーザー名とパスワードを投稿していません。

require 'fusion_tables'

@ft = GData::Client::FusionTables.new      
@ft.clientlogin(my_google_account_name, my_google_account_password)

# Creating a new table
columns = [
    {
        :name=>"column_1",
        :type=>'string'
    }, 
    {
        :name=>"column_2",
        :type=>'number'
    }
]

new_table = @ft.create_table "Ruby table",columns

# Inserting rows
data = [
    {
    "column_1"=>"This is a string",
    "column_2"=>100
    }
]

new_table.insert data

実行すると、次のエラーが発生します。

<HEAD>
<TITLE>User does not have permission to view the underlying data</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>User does not have permission to view the underlying data</H1>
<H2>Error 403</H2>
</BODY>
</HTML>

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

1

宝石のようcreate_table methodに少し時代遅れのようです。

上記の例と、 gemリポジトリで提供されているboris_bikesの例fusion_tablesを試してみました。Error 403 User does not have permission to view the underlying dataどちらも、メソッドを呼び出す行にエラーメッセージをスローしますcreate_table

上記の例では、このエラーをスローする行は次のとおりです。

new_table = @ft.create_table "Ruby table",columns

ただし、「Ruby_table」フュージョンテーブルが作成されます。(fusion_tablegemはテーブル名をサニタイズします。つまり、指定された名前のスペースをアンダースコアに置き換えます。)

最近、GoogleFusionテーブルAPIがこのgemで少し変更された可能性があります。レポで新しい問題を開きました; うまくいけば、開発者はすぐにそれに応答するでしょう。(または、時間が許せば、私はそれを掘り下げ、理由を理解し、パッチを提出します)

今のところ、テーブルが作成されているので、エラーを無視して先に進むことをお勧めします。

回線を実行した後new_table = @ft.create_table "Ruby table",columns、次の手順に進みます。

tables = @ft.show_tables
new_table  = tables.select{|t| t.name == "Ruby_table" }.first

# Inserting rows
data = [ 
 { 
    "column_1"=>"This is a string",
    "column_2"=>100
  }
]

new_table.insert data

これで、FusionTableに線が表示されるはずです。

私の本番アプリの1つで、必要なFusionテーブルを手動で作成しました-既存のデータテーブル(現在APIサポートはありません)とマージしてから、truncateinsertメソッドを使用してFusionテーブルデータを更新します。そのため、プログラムでFusion Tableを作成できないことは、私たちにとって大きな問題にはなりませんでした。

于 2012-10-22T03:35:39.550 に答える