我本質上不是一名編碼人員,並且在GAS中自學(僅使用我所使用的代碼)。我爲諾里奇城市學院工作,我想創建一個腳本,自動將我登錄到他們的網站,以便我可以獲取時間表數據並將其放入電子表格中。Google Apps腳本(GAS)使用帶用戶名和密碼的urlfetchapp
做了一些研究後,我放棄了試圖找出它,所以我尋求幫助。
我已經試過這樣:
function getTimetables() {
var url = "https://ccn.ac.uk/user/";
var options = {
"method": "post",
"payload": {
"user-login" : "username",
"edit-pass" : "password",
"BUTTON_Submit" : "Log In",
},
"testcookie": 1,
"followRedirects": false
};
var response = UrlFetchApp.fetch(url, options);
if (response.getResponseCode() == 200) {
// Incorrect user/pass combo
Logger.log('Incorrect user/pass combo')
} else if (response.getResponseCode() == 302) {
// Logged-in
var headers = response.getAllHeaders();
if (typeof headers['Set-Cookie'] !== 'undefined') {
// Make sure that we are working with an array of cookies
var cookies = typeof headers['Set-Cookie'] == 'string' ? [ headers['Set-Cookie'] ] : headers['Set-Cookie'];
for (var i = 0; i < cookies.length; i++) {
// We only need the cookie's value - it might have path, expiry time, etc here
cookies[i] = cookies[i].split(';')[0];
};
url = "https://mytimetable.ccn.ac.uk/timetable.aspx?week=30&room=C5A";
options = {
"method": "get",
// Set the cookies so that we appear logged-in
"headers": {
"Cookie": cookies.join(';')
}
}
}
}
}
它會返回 「不正確的用戶名/密碼組合」。
而且我已經試過這樣:
function getTimetablev2() {
var site = "https://ccn.ac.uk/user"
var USERNAME = PropertiesService.getScriptProperties().getProperty('username');
var PASSWORD = PropertiesService.getScriptProperties().getProperty('password');
var url = PropertiesService.getScriptProperties().getProperty(site);
var headers = {
"Authorization" : "Basic " + Utilities.base64Encode(USERNAME + ':' + PASSWORD)
};
var params
= {
"method":"GET",
"headers":headers
};
var response =
UrlFetchApp.fetch(site, params);
Logger.log(response.getResponseCode())
}
它會返回代碼200 - 登錄失敗
如果有人能解決這個問題對我來說,我會永遠感激你,因爲它會救我。時間的負載。我已經創建了一個實用的預訂系統,每個老師都有自己的電子表格,並附有他們的時間表,所有預訂都發送給我們技術人員使用的主電子表格。如果我能夠自動生成時間表,那就太棒了。