小编Gio*_*lli的帖子

OAuth v2(Google API)到期访问令牌

我正在使用具有预构建OAuth2连接器的图形框架构建集成组件.此框架需要以下OAuth v2字段:

  • 格兰特类型
  • 范围
  • Auth服务器URL
  • 客户ID
  • 客户秘密
  • 访问令牌
  • 刷新令牌

我需要从Google AnalyticsAPI获取数据,因此我访问了Google Dev Console(https://console.developers.google.com/project/927890000889/apiui/credential).我生成了一个"Web应用程序的客户端ID".从这个对象的参数我能够填充上面的一些参数

  • 授权类型:'authorisation_code'
  • 客户ID:'RANDOMCHARSam5o37nsiu730d.apps.googleusercontent.com'
  • 客户秘密:'RANDOMCHARSiSwBA5OH5qYLUa'

然后使用Google Oauth Playground(https://developers.google.com/oauthplayground),我能够填补缺失的位

一切正常,我有权访问并从Google Analytics获取数据,但只是一段时间,几分钟后如果我重试我收到授权失败错误.我认为问题与访问令牌的到期有关,但我不知道如何解决这个问题.值得一提的是这个活动是批处理的(没有人工交互),所以没有人可以请求新的访问令牌.集成框架是不可扩展的(我不能编写代码来更新代码)所以我相信有一种方法可以获得永不过期的访问令牌或其他一些机制来实现相同的结果.

最重要的是,我不确定自开始以来我是否正确地接近了要求(Web应用程序的客户端ID).

Giovanni,非常感谢任何帮助

api google-analytics oauth google-oauth

10
推荐指数
2
解决办法
4万
查看次数

Tampermonkey脚本在页面加载之前运行

我需要隐藏html页面中的一个部分:

<h1 data-ng-show="!menuPinned &amp;&amp; !isSaaS" class="logo floatLeft" aria-hidden="false"><span>XXX&nbsp;</span><span style="font-weight: bold;">XXX&nbsp;</span><span>XXXXX</span></h1>
Run Code Online (Sandbox Code Playgroud)

以下代码在Chrome dev中正常运行.工具

var ibmlogo = document.querySelectorAll('h1.logo.floatLeft');
ibmlogo[1].remove();
Run Code Online (Sandbox Code Playgroud)

但是当我在脚本处于活动状态时加载页面时,部分(h1)将不会消失.我相信这是因为当脚本运行时,DOM尚未完成加载,因此脚本无法找到选择器.

我尝试了很多不同的东西(例如window.onLoad),但我的脚本仍然无效.最后一次尝试(失败)如下:

var logo = document.querySelectorAll('h1.logo.floatLeft');
logo.onload = function() {removeLogo()};

function removeLogo(){
    console.log("### logo array lenght: " + logo.length);
    logo[1].remove();
};
Run Code Online (Sandbox Code Playgroud)

有什么建议?谢谢Giovanni

html javascript tampermonkey

9
推荐指数
1
解决办法
9912
查看次数

ejs include 不适用于子文件夹

我正在使用 express 和 ejs 来构建一个网站:

"dependencies": {
 "ejs": "^2.5.2",
 "express": "^4.14.0",
Run Code Online (Sandbox Code Playgroud)

在我的 app.js 中,我将 ejs 定义为模板引擎和视图的根:

app.set('view engine', 'ejs'); // set view engine
app.set('views', 'app/views'); // set custom root for view engine
Run Code Online (Sandbox Code Playgroud)

然后我创建了我的 index.ejs 文件,其中包含了子目录中的一个部分:index.ejs

  <head><% include ./partials/template/head %></head>
Run Code Online (Sandbox Code Playgroud)

文件夹结构:

- views
  index.ejs
-- partials
-- -- template
      head.ejs
Run Code Online (Sandbox Code Playgroud)

当启动服务器时,索引加载没有错误但没有头部部分。如果我更改包含(指向错误的位置),服务器将无法开始突出显示问题,因此 ejs 能够找到 head.ejs。如果我在视图目录中移动 head.ejs,则 head 会正确加载到 index.ejs 中。所以......我有点困惑,似乎在子目录中文件读取但未加载到包含中。

在四处寻找之后,我尝试使用 express-partials 但它并没有太大帮助。

有什么线索吗?

干杯,乔瓦尼

template-engine ejs node.js express

5
推荐指数
2
解决办法
8511
查看次数

如何在容器中解析docker主机名(/ etc/hosts)

如何解决容器中Docker主机的/ etc/hosts中定义的名称?在我的Docker主机中运行的容器可以解析公共名称(例如www.ibm.com),因此Docker dns工作正常.我想从容器中解析Docker主机的名称(例如127.17.0.1 smtp).

我的最终目标是从容器连接到Docker主机(例如smtp服务器)中运行的服务.我知道我可以从容器中使用Docker主机IP(127.17.0.1),但我认为Docker也会使用Docker主机/ etc/hosts来构建容器的解析文件.

我甚至很确定我已经看到这个工作了......但我可能是错的.

有什么想法吗?

乔瓦尼

docker

5
推荐指数
1
解决办法
6027
查看次数

什么是首先阅读的HTML或JavaScript?

从我遇到的问题我理解它是如何工作的,但我找不到任何有助于我澄清行为的正式参考.

<head>
<title>Chapter 7: Example 7</title>
<script type="text/javascript">

    var formWeek = document.form1;
    var weekDays = new Array();
    weekDays = formWeek.theDay.options;
    function btnRemoveWed_onclick()
    {
        console.log("In btnRemoveWed_onclick");

    }
</script>
</head>

<body>
<form action="" name="form1">
    <select name="theDay" size="5">
        <option value="0" selected="selected"></option>
Run Code Online (Sandbox Code Playgroud)

使用此代码,我在"weekDays = formWeek.theDay.options;"行中收到错误 因为"theDay"没有定义.所以我相信在执行JS代码时,浏览器没有解析并加载DOM(因此它不知道form1).

如果我在函数内移动变量定义,一切正常.

        function btnRemoveWed_onclick()
    {
        console.log("In btnRemoveWed_onclick");
        var formWeek = document.form1;
        var weekDays = new Array();
        weekDays = formWeek.theDay.options;
    }
Run Code Online (Sandbox Code Playgroud)

在函数执行时,浏览器知道form1(加载所有HTML代码).

所以...从代码中行为是清楚的,但它仍然没有"点击"我的想法它是如何工作的.

我认为下面的链接是了解行为的一个很好的参考.

我应该在哪里将<script>标记放在HTML标记中?

你能指点一些解释HTML-JS加载的好读物吗?

html javascript dom

3
推荐指数
1
解决办法
225
查看次数