2012-12-16 35 views
3

我想在我的網頁上顯示一些地圖圖層,因此我決定嘗試使用此Google服務。由於數據收集在服務器的數據庫中,因此我選擇使用服務帳戶,如here所述,然後使用我的php腳本中生成的私鑰。創建一個表,並插入一些測試值時獲取融合表格

,一切工作正常。我得到了桌面ID,我可以從我的腳本中使用它。問題是我不知道如何從Web瀏覽器訪問這些表格。在我的API控制檯中,使用狀態顯示正常,但使用我的帳戶登錄Google Drive時,沒有看到任何表格。

如果可能,我應該在哪裏訪問它們?請執行apps.googleusercontent.com或developer.gserviceaccount.com帳戶扮演任何角色以登錄其他服務以通過網絡訪問?

我也得到了相關的API密鑰,而是試圖查詢表時,我得到一個401錯誤。

任何提示?我現在感覺有點失落。謝謝。

回答

3

您使用的是服務帳戶吧? 因此,當您使用此帳戶創建表時,此帳戶將成爲表所有者。沒有其他人有權查看此表。

在訪問用您的個人帳戶 Fusion Tables網絡界面,你只會看到你createdwith您的個人賬戶表。

如果要檢查你的服務帳戶創建的表,你必須使用谷歌雲端硬盤API與您的服務帳戶憑據給訪問權限到您的個人帳戶。 此外,如果您希望公開您的表格(或任何其他類型的文檔),則需要再次使用此Google Drive API。 查看更多的話題在這裏:

https://developers.google.com/drive/v2/reference/permissions/insert

提示:如果你想達到代表服務帳號的東西,你只需要一次(所以沒有必要實現邏輯,它在你的webapp)我真的建議你考慮使用OAuth2 Playground。您可以在「設置」中設置您的服務帳戶憑據,並代表您的服務帳戶發佈授權請求。非常有用的工具,無需編碼。

+0

感謝您的幫助。這開始顯得有些複雜。我想實現的非常簡單:使用服務器php腳本中的數據提供融合表,然後顯示訪問我的網頁的任何用戶顯示此數據的地圖。這樣一個簡單的用例是否會採取所有這些步驟?如果可能的話,我想避免任何過度併發症。 – Dan

+1

你說過,你已經使用服務帳戶從php填充了一個融合表。你是最糟糕的一部分,不要放棄。你最可能使用了google-php-api-client,對吧?如果是這樣,您必須在腳本中擁有Google_Client $客戶端。使用它可以讓您掌握Drive API權限服務:$ permissionsService = new Google_DriveService($ client) - > permissions; – sanya

+0

一旦你擁有了它,創建一個新的權限,這將使你的表公開給這樣的任何人: $ permission = new Google_Permission(); $ permission-> setRole('reader'); $ permission-> setType('anyone'); 然後將此權限添加到您的融合表: $ permissionsService-> insert($ tableId,$ permission); 就是這樣,你完成了。從現在起,你的桌子是可讀的(但是對於每個人,不僅僅是你)和公開的。現在,您可以將其放在Google地圖「融合層」上。 – sanya