使用google fusion table同步数据库

Ale*_*dro 1 coldfusion google-fusion-tables

我有麻烦搞清楚谷歌api ..我试图通过我的coldfusion应用程序将数据插入我的融合表..

<cfhttp  url="https://www.google.com/accounts/ClientLogin"  method="post" charset="utf-8">
<cfhttpparam type="formfield" name="accountType" value="GOOGLE"></cfhttpparam>
<cfhttpparam type="formfield" name="Email" value="MYUSERNAME"></cfhttpparam>
<cfhttpparam type="formfield" name="Passwd" value="MY PASSWORD"></cfhttpparam>
<cfhttpparam type="formfield" name="accountType" value="GOOGLE"></cfhttpparam>
<cfhttpparam type="formfield" name="service" value="fusiontables"></cfhttpparam>
</cfhttp>
Run Code Online (Sandbox Code Playgroud)

这回来了

SID=DQAAALoAAAC5eSJUrVB_WVchS1plunfW2YPUTadHAxoEbE0xMcOzQxeTloc2RWWBjoJi4jKm6NIiFbGbV_IQ3vuY9bl-Z0RS64OFAy5aUY-Do_nX8DpPhVkEyBzDScJidi73G7ZqWmkdykkIGCBrr7MLa-eBMrXZvLJP0D21xJTjxRWyeM4xuEMQGhEbnWwBL9RnEByr5Rsgzx7dl9n4tsYQOvaGV3ZcMlT0CooS2__orwC12UH7eKCk-REKzbX5Z-bbu4EdLps LSID=DQAAALwAAABV7lz-YRh02pR7IlWkKidScbYTQArBWnaAJpAlZQ9rgtgmdQCSBuIZQQ21QDXZLORwTAyDi-34Mjs8SKvI7ronBSuniDW2SGipYoUhZDEjxwR55DQc1AaI3JgGPMc69YGAVv-_EMwXlS7elWO6lDW-G4PTR6Aqa0DO3y7Iig-L7g2b7zMFq32JIvjUj5rofcykF27T8sOuhd0Z4XTvgO-18Kp2z8o6EK_5qjZcHPmih0GB6LeSElBo2wjah1TM2u0 Auth=DQAAALwAAADYQbciaOLab2Aw_QghTO8hR0DPDOjoWZVKeJ-ApGwoUz7OgcqVtSHMUvRHHZoKys5ygjhm2FiHSh1CvW1SicOvajwRZSstvghtsCQl-y7LeT8TMkeCj5ZIqy8A05wg1YjCz3F3eDz9TImtlvGij7IOdWJ3Ae4NE8WQdC0Js5Laccebhgjj7Lk9FkRgG9c3yRyGhu7LmsRbtLjfv5jwGoozDuCcx6b79bECoR8qABkT-e5HgF7sWjYbLfz667OCeA0 
Run Code Online (Sandbox Code Playgroud)

现在我试图插入我的表...我从上面传递auth值..我在谷歌文档中找不到任何认证字段应该是什么..任何帮助将不胜感激..

<cfhttp url="https://www.google.com/fusiontables/api/query" method="post" charset="utf-8">
<cfhttpparam type="formfield" name="sql" value="INSERT INTO 423555 (id, outcode,lat,lng) VALUES ('1','W14',1231232,-123123);"/>
<cfhttpparam type="header" name="Authorization" value="Auth"></cfhttpparam>
<cfhttpparam type="header" name="token" value="#listtoarray(cfhttp.FileContent,"=")[4]#"></cfhttpparam>
</cfhttp>
Run Code Online (Sandbox Code Playgroud)

Edw*_*ith 5

AUTH应该是您在Google的回复中收到的身份验证令牌.

文档中你应该做一个标题:

Authorization: GoogleLogin auth=yourAuthToken
Run Code Online (Sandbox Code Playgroud)

所以,这将是

<cfhttpparam type="header" name="Authorization" value="GoogleLogin auth=#listtoarray(cfhttp.FileContent,"=")[4]#"></cfhttpparam>
Run Code Online (Sandbox Code Playgroud)

这是假设#listtoarray(cfhttp.FileContent,"=")[4]#返回Auth属性的值 - 我没有把它计算出来以确定.

我不认为,只是看一下文档,需要"令牌"标题.

但是,#listtoarray(cfhttp.FileContent,"=")[4]#是一种非常脆弱的方式.如果Google要重新排序他们的回复或更改回复,那么您的代码就不再适用了.

我会寻找一种更强大的解析响应的方法.我可能会在空格上拆分响应并将其转换为名称为键的结构,然后您可以使用类似的东西

#response['auth']#
Run Code Online (Sandbox Code Playgroud)