2011-02-02 5 views
1

Я имею проблемы выясняя API Google .. Я пытаюсь вставить данные в моей сводную таблицу с помощью моего ColdFusion приложения ..база данных синхронизируется с Google Fusion таблицы

<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> 

это возвращается с

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 

Теперь я пытаюсь вставить в свою таблицу ... Я передаю значение auth сверху .. Я не могу найти нигде в документах google, какими должны быть поля аутентификации. Любая помощь будет принята с благодарностью. .

<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> 

ответ

5

AUTH должен быть признаком авторизации, который вы получили в ответ Google.

От the docs вы должны сделать заголовок как:

Authorization: GoogleLogin auth=yourAuthToken 

Итак, это было бы

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

Это предполагает, что #listtoarray (cfhttp.FileContent, "=") [4] # возвращает значение свойства Auth - я не подсчитал это, чтобы быть уверенным.

Я не думаю, что просто взглянув на документы, нужен заголовок «токен».

Но, #listtoarray (cfhttp.FileContent, "=") [4] # - это действительно хрупкий способ сделать это. Если Google изменит свой ответ или изменит его, ваш код больше не будет работать.

Я бы посмотрел на более надежный способ анализа ответа. Я бы, вероятно, разделить ответ на пробельном и превратить его в структуры с именами, как ключи, то вы могли бы использовать что-то вроде

#response['auth']# 
+0

вау удивительное это сработало ... ты легенда !! .. я думаю, что вы «Правильно о том, чтобы скрестить пробелы .. плохо дайте это. .. снова спасибо .. – Alessandro

+0

+1 для преобразования ответа в структуру. – Leigh

Смежные вопросы