2016-12-07 83 views
1

我想讓Google Apps腳本Web應用程序從我的Wordpress中捕獲當前用戶名。 我一直在這一段時間工作,但我無法弄清楚。 我嘗試了這種方式 - 裏面的wp我運行代碼:AppsScript和Wordpress之間的溝通

<?php $current_user = wp_get_current_user(); echo '<div id="username" style="visibility: hidden;">' . $current_user->user_login . '</div>'; ?> 

現在我想抓住從谷歌Web應用程序的ID的內容(在iframe),但我不能訪問的父元素。我如何在兩者之間進行溝通?

+0

請閱讀SO文檔並提供與您的谷歌Apps腳本代碼的完整可重複的例子。其次,我認爲由於GAS中的iframe限制,您將無法訪問父元素。由安全功能通過設計。 –

+0

下次會這樣做。 – dirtybob

回答

2

您可以將值發送到iframed webapp作爲參數。

主頁:

<?php $current_user = wp_get_current_user(); echo '<iframe src="https://script.google.com/macros/s/.../exec?name=' . $current_user->user_login . '"></iframe>'; ?> 

Google Apps腳本:

function doGet(e) { 
    var temp = HtmlService.createTemplateFromFile('index'); 
    temp.name = e.parameters.name; 
    return temp.evaluate().setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL); 
} 
+0

非常感謝你這個好主意!我試過了,但無法弄清楚如何獲取用戶名? 我在瀏覽器中上傳了創建的iframe的控制檯圖片: http://fs5.directupload.net/images/161207/o3wtg4j3.png – dirtybob

+0

在Apps Script事件對象被傳遞給onGet()/ onPost()函數。公約將其命名爲'e'。在我的示例中,我將該名稱分配給模板對象,但您可以輕鬆地執行諸如'var name = e.parameters.name'之類的操作,並將name參數分配給一個變量。 –

+0

'function doGet(e){var_html = temp.name = e.parameters.name; return temp.evaluate()。setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL); } 函數Datentransfer(){ var logInName = doGet(); var ss = SpreadsheetApp.openById('ID'); var sss = ss.getSheetByName('Sheet1'); var email = Session.getActiveUser()。getEmail(); sss.getRange(sss.getLastRow()+ 1,1,1,2).setValues([[logInName,email]]); }' 在控制檯中給我一個錯誤: '「無法從未定義的屬性讀取參數」' – dirtybob