0

我正在将融合表与我在 AppInventor 中开发的 android 应用程序一起使用,并且我对用于更新行的 SQL 查询有疑问。

现在,在我问这个问题之前,我会让你知道我会包含一些我的块编辑器代码的屏幕截图,但是我的老板告诉我我必须让应用程序 100% 封闭源代码,所以我不能提供任何. 希望我不会太含糊。

无论如何,我使用“make text”块和 Google API UPDATE 查询设置了一个 FusionTablesControl 查询,但是当我在我的测试设备(Samsung Galaxy Player 5)上发送查询时,只会弹出覆盖的“Fusion Tables”加载屏幕一瞬间(通常显示 2 或 3 秒)。当我检查表格时,没有任何变化。

我认为语法仍然是一个潜在的问题,因为当我在谷歌浏览器的地址栏中输入编码的 URL 时,它仍然没有更新表格。这是我在地址栏中输入的基本语法。

https://www.googleapis.com/fusiontables/v1/query?sql=UPDATE%20tableID%20SET%20(Column1%3Ddata1%2C%20Column2%3Ddata2%2C%20Column3%3Ddata3%2C%20Column4%3Ddata4)%20WHERE%20ROWID%20%3D%20%27rowID%27

"sql=" 部分后的解码 URL 为:

UPDATE tableID SET (Column1=data1, Column2=data2, Column3=data3, Column4=data4) WHERE ROWID = 'rowID'

任何帮助,将不胜感激。

此外,是否可以将 Google 的 API 响应设置为 CSV 而不是 JSON?

谢谢,~T16626

4

1 回答 1

0

这不是那样工作的,因为您没有使用身份验证。更多信息请参见此处

识别您的应用程序并授权请求

您的应用程序向 Fusion Tables API 发送的每个请求都需要向 Google 识别您的应用程序。有两种方法可以识别您的应用程序:使用 OAuth 2.0 令牌(也授权请求)和/或使用应用程序的 API 密钥。以下是如何确定要使用哪些选项:

如果请求需要授权(例如对个人私人数据的请求),则应用程序必须在请求中提供 OAuth 2.0 令牌。应用程序也可以提供 API 密钥,但不是必须的。如果请求不需要授权(例如对公共数据的请求),则应用程序必须提供 API 密钥或 OAuth 2.0 令牌,或两者都提供 — 任何对您来说最方便的选项。

要使用 App Inventor 访问融合表,您有两种可能性:

  1. 使用内置的 fusiontable 控制块,如何为 App Inventor 设置所有内容,请参阅Pizza Party 教程
  2. 使用带有身份验证的 Web 组件,有关详细信息,请参见此处
于 2013-06-27T11:44:53.900 回答