【问题标题】:How to integrate google contacts api in node webkit如何在节点 webkit 中集成谷歌联系人 api
【发布时间】:2015-04-02 07:16:39
【问题描述】:

我需要在我的nw.js 应用程序中集成谷歌联系人导入。我应该如何创建 google app ?当我将应用程序创建为 Web 应用程序时,它要求输入 redirect uri,这对桌面应用程序不可用。我不清楚如何为桌面应用程序实现谷歌集成。谁可以帮我这个事。 ?

【问题讨论】:

    标签: google-api desktop-application google-apps node-webkit hello.js


    【解决方案1】:

    在桌面应用程序的 OAuth 中有一个选项,当您将重定向到 app://something 而不是 http://domain 时,您的应用程序将被启动或接收回调。

    为此,在您的应用程序中,您需要在新窗口中打开请求令牌 url(您的 node-webkit 应用程序中的新窗口)。

    另外:google docsnode-webkit github issueother issue 关于这个。


    对我来说,我认为最好打开一个默认浏览器,用户很有可能已经通过身份验证,然后只需单击“允许”。所以我在 node-wekit 应用程序中启动简单的网络服务器并重定向到 localhost。

    你可以在我的项目https://github.com/Paxa/postbird/blob/90cfb53b1775310eb2f262c8b54c9dba15b5cc0a/app/heroku_client.js#L185看到实现

    要打开默认浏览器,我使用命令“open”(仅适用于 mac)

    child_process.spawn('open', [url]);
    

    当用户重定向回来时,我也尝试关闭浏览器窗口,它可以工作但并非总是如此。

    response.writeHead(200, {"Content-Type": "text/html"});
    response.end("<script type='text/javascript'>window.close();</script>");
    

    也许我也应该在收到重定向时激活一个窗口(还没有尝试过):

    var currentWin = require('gui').Window.get();
    currentWin.focus();
    

    如果 google 不允许将 localhost 作为回调 url,你可以尝试使用一些域(甚至免费)并将其指向 127.0.0.1 或使用http://readme.localtest.me/

    【讨论】:

    • 多平台支持可以使用github.com/pwnall/node-open在系统默认应用中打开文件或url
    • 但是你将如何从打开的网页连接到 nw.js 数据库?
    • 您的应用程序在某个端口上启动一个 Web 服务器,然后用户的浏览器将被重定向到 http://localhost:12345/something,您将收到它作为传入请求。
    猜你喜欢
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多