【发布时间】:2015-04-02 07:16:39
【问题描述】:
我需要在我的nw.js 应用程序中集成谷歌联系人导入。我应该如何创建 google app ?当我将应用程序创建为 Web 应用程序时,它要求输入 redirect uri,这对桌面应用程序不可用。我不清楚如何为桌面应用程序实现谷歌集成。谁可以帮我这个事。 ?
【问题讨论】:
标签: google-api desktop-application google-apps node-webkit hello.js
我需要在我的nw.js 应用程序中集成谷歌联系人导入。我应该如何创建 google app ?当我将应用程序创建为 Web 应用程序时,它要求输入 redirect uri,这对桌面应用程序不可用。我不清楚如何为桌面应用程序实现谷歌集成。谁可以帮我这个事。 ?
【问题讨论】:
标签: google-api desktop-application google-apps node-webkit hello.js
在桌面应用程序的 OAuth 中有一个选项,当您将重定向到 app://something 而不是 http://domain 时,您的应用程序将被启动或接收回调。
为此,在您的应用程序中,您需要在新窗口中打开请求令牌 url(您的 node-webkit 应用程序中的新窗口)。
另外:google docs 和 node-webkit github issue 和 other 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/
【讨论】:
http://localhost:12345/something,您将收到它作为传入请求。