2016-06-07 57 views
0

我需要实现一个用于在网站上登录的谷歌脚本应用程序,然后如果身份验证过程在该网站上成功,用户应该在Google脚本边栏中收到一条消息。Google脚本在外部网站上进行身份验证

例如:用户输入他的电子邮件和密码,然后他按下登录按钮,然后他应该在网站上登录,如果凭据是正确的。

让我知道如果我需要提供更多细节......我是新的谷歌应用脚​​本,我真的需要一些帮助,这个登录过程。谢谢!

我试图执行下面的代码,但在执行login功能时,我收到以下错误信息:Request failed for https://example.com/login returned code 405.

HTML文件:

<div class="form-auth"> 
    <label class="inline">username</label> 
    <input type="text" placeholder="Insert Email"/> 
</div> 
<div class="form-auth"> 
    <label class="inline">password</label> 
    <input placeholder="Insert Password"/> 
</div> 
<button class="btn-default">Login</button> 

谷歌的脚本文件:

function onOpen() { 
    SpreadsheetApp.getUi() // Or DocumentApp or FormApp. 
     .createMenu('Menu') 
     .addItem('Show sidebar', 'showSidebar') 
     .addToUi(); 
} 

function showSidebar() { 
    var html = HtmlService.createHtmlOutputFromFile('login') 
     .setSandboxMode(HtmlService.SandboxMode.IFRAME) 
     .setTitle('SDR Tag Governance') 
     .setWidth(300); 
    SpreadsheetApp.getUi() // Or DocumentApp or FormApp. 
     .showSidebar(html); 
} 

function login() { 
    var payload = 
    { 
    "username" : "[email protected]", 
    "password" : "myPassword", 
    }; 
    var options = 
    { 
    "method" : "post", 
    "payload" : payload, 
    "followRedirects" : false 
    }; 
    var login = UrlFetchApp.fetch("https://example.com/login" , options); 
    var sessionDetails = login.getAllHeaders()['Set-Cookie']; 
} 
+0

状态405意味着方法不允许,也许你的网址不需要你发送它。您是否尝试使用ajax从浏览器进行相同的登录调用?从浏览器控制台执行操作时,请确保您位于相同的域名,即example.com,除非您禁用了CORS。 – MShoaib91

+0

我设法通过添加'headers'选项来解决这个问题。 – Valip

回答

1

通过添加标题选项来修复此问题:

var headers = { 
    'Connection':'keep-alive', 
    'Content-Type':'application/json;charset=utf-8', 
    'Accept':'application/json, text/plain, */*', 
    'Cookie':'...', 
    } 
相关问题