小编DaI*_*mTo的帖子

了解node.js require('fs') 与 require('fs').promises;

我有两个方法。

第一个读取文件并以纯文本形式写入该文件。第二个将文件作为流写入。

为了让它工作,我不得不在 require 中添加 fs 两次。

const fs = require('fs').promises;
const fs2 = require('fs');
Run Code Online (Sandbox Code Playgroud)

我试图理解其中的区别以及为什么我需要两次。但似乎没有promise的fs没有能力使用createWriteStream,而没有.promises的fs没有能力使用writeFile

/**
 * Serializes credentials to a file compatible with GoogleAUth.fromJSON.
 *
 * @param {OAuth2Client} client
 * @return {Promise<void>}
 */
async function saveCredentials(client) {
    const content = await fs.readFile(CREDENTIALS_PATH);
    const keys = JSON.parse(content);
    const key = keys.installed || keys.web;
    const payload = JSON.stringify({
        type: 'authorized_user',
        client_id: key.client_id,
        client_secret: key.client_secret,
        refresh_token: client.credentials.refresh_token,
    });
    await fs.writeFile(TOKEN_PATH, payload);
}
Run Code Online (Sandbox Code Playgroud)

第二个以流的形式写入文件

/**
 * Download file
 * …
Run Code Online (Sandbox Code Playgroud)

javascript node.js google-api-nodejs-client

12
推荐指数
1
解决办法
2万
查看次数

Gmail SMTP 发送 - 535-5.7.8 用户名和密码不被接受

我在使用 java 应用程序从 gmail 帐户发送电子邮件时遇到问题。

我编写了简单的 Java 代码来从我的应用程序发送电子邮件。我已打开 MFA,并创建了应用程序密码,并在代码中使用它。当我执行代码时,我收到消息

javax.mail.AuthenticationFailedException:535-5.7.8 不接受用户名和密码。了解更多信息,请访问 535 5.7.8 https://support.google.com/mail/?p=BadCredentials ft13-20020a17090b0f8d00b0022630ba1c80sm1576429pjb.42 - gsmtp

我相当确定该错误消息与代码问题无关(但我知道什么?)并且我已多次仔细检查凭据以确保它们正确。我试图了解还有什么可能是问题。如果有任何建议或需要检查的事情,我将不胜感激。

gmail smtp

12
推荐指数
1
解决办法
2万
查看次数

使用C#的Google Drive API - 正在上传

我正在尝试使用asp.net应用程序中的Google Drive API上传文件.

问题:代码在本地工作,但上传到服务器时没有任何反应(页面只是继续加载...没有同意屏幕显示.帮助appreaciated."UploadedPdf"文件夹是可写的,client_secrets.json存在于该文件夹中.

注意:我没有在服务器上安装任何内容,只是将包含Google API dll的所有文件上传到服务器的bin文件夹中.

UserCredential credential;
        using (var filestream = new FileStream(Server.MapPath("UploadedPdf/client_secrets.json"),
            FileMode.Open, FileAccess.Read))
        {
            credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                GoogleClientSecrets.Load(filestream).Secrets,
                new[] { DriveService.Scope.Drive },
                "user",
                CancellationToken.None,
                new FileDataStore(Server.MapPath("UploadedPdf/"))).Result;
        }

        // Create the service.
        var service = new DriveService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = credential,
            ApplicationName = "Drive API Sample",
        });

        Google.Apis.Drive.v2.Data.File body = new Google.Apis.Drive.v2.Data.File();
        body.Title = "My document";
        body.Description = "A test document";
        body.MimeType = "text/plain";

        byte[] byteArray = System.IO.File.ReadAllBytes(Server.MapPath("UploadedPdf/sample.txt"));
        System.IO.MemoryStream stream = new System.IO.MemoryStream(byteArray);

        FilesResource.InsertMediaUpload request = …
Run Code Online (Sandbox Code Playgroud)

c# asp.net google-api google-drive-api google-api-dotnet-client

11
推荐指数
1
解决办法
5459
查看次数

ICustomAuthorizeRequestValidator没有被调用?

我正在尝试使用AddCustomAuthorizeRequestValidator方法来提供自定义声明验证.我甚至无法在ICustomAuthorizeRequestValidator实现中获得断点.我错过了什么吗? 我的断点

ConfigureServices方法代码:

services.AddMvc();

services.AddOptions();

services.AddTransient<ICustomAuthorizeRequestValidator, Saml2BearerValidator>();

services.AddIdentityServer()
    .AddTestUsers(Config.GetUsers())
    .AddConfigurationStore(builder =>
        builder.UseSqlServer(_settings.Value.ConnectionString, options =>
                options.MigrationsAssembly(migrationsAssembly)))
    .AddOperationalStore(builder =>
        builder.UseSqlServer(_settings.Value.ConnectionString, options =>
                options.MigrationsAssembly(migrationsAssembly)))
    .AddCustomAuthorizeRequestValidator<Saml2BearerValidator>()
    .AddSigningCredential(CertificateManager.GetFromStorage(
                _settings.Value.ServerCertificateThumb, _settings.Value.ServerCertificatePass));

    return services.ConfigureAutofacServicesProvider(_settings.Value.Abc_xacml_n3_diagnostic);
Run Code Online (Sandbox Code Playgroud)

c# oauth .net-core identityserver4

11
推荐指数
1
解决办法
869
查看次数

未在 iframe 中设置 Cookie

我在一台服务器上有一个身份服务器 (v4),在不同的服务器和域上有一个 Web 应用程序。我只需要 Windows 身份验证,使用重定向一切正常。但是,我注意到如果 cookie 尚未过期,则静默登录有效。

如果 cookie 已过期,则当前需要重定向,这可以正常工作。然而不幸的是,这意味着如果用户没有在当前屏幕上保存数据,除非我实现缓存机制,否则他们将丢失它。相反,我想设置一个隐藏的 iframe,它只是导航到身份服务器,如果用户在公司基础设施内(他们总是这样),则自动登录。

经过数小时的调试,我发现虽然 cookie 是从 iFrame 正确发送的,但任何 SET 似乎都不起作用 - 它们在 chrome 调试器中作为响应 cookie,但不会在下一次重定向时作为请求 cookie 发送我不知道为什么。

在回应:

Cookie 选项:SameSite Lax、HTTP 真、安全真、路径 /

标题:

内容安全策略:default-src 'self'; object-src '无'; 框架-src 本地主机:44388;frame-ancestors 'self' https://localhost:44388/ ; 沙箱允许形式允许同源允许脚本;base-uri '自我';

持久身份验证:true

编译指示:无缓存

推荐人政策:无推荐人

WWW-Authenticate : 协商 oRswGaADCgEAoxIEEAEAAABJ+0p/zH0aeAAAAAA=

X-Content-Security-Policy : default-src 'self'; object-src '无'; 框架-src **本地主机:44388;frame-ancestors 'self' https://localhost:44388/ ; 沙箱允许形式允许同源允许脚本;base-uri '自我';

X-Content-Type-Options : nosniff

X-Frame-Options : ALLOW-FROM https://localhost:44388/

cookies iframe c3.js asp.net-core identityserver4

11
推荐指数
2
解决办法
9947
查看次数

Google将所有帐户和项目的youtube api v3每天查询限制降低到每天10000次

关于如何增加配额限制,这不是另一个问题。今天,Google将每天查询的youtube api v3配额限制从我的情况下的5000万减少到了0!有人有100万个查询,每天有10万个查询,但是现在每个人只有10000个单位。它非常低,所有严重的生产应用程序都将很快被暂停。这种条件是不能接受的。这是在没有任何通知的情况下发生的!在云控制台或邮箱中没有消息!这意味着我们所有人都需要完全关闭我们的项目。数千名涉及youtube api项目的开发人员,我们编写了许多代码来使所有事情正常运行,并花费了大量时间和精力。

由于Google不提供youtube api的任何支持,因此无法解决该问题。我试图与所有渠道联系youtube api团队,大约3个月前填写了全新的配额申请表-仍然没有答案或积极的变化。

在官方文档和Google Cloud Console页面中,stackoverflow是我们唯一可获取帮助的地方,因为google人员正在监视与google服务关联的标签。也许这个话题比我之前的https://issuetracker.google.com/issues/79183616汇总了更多反馈

所以我想问其他开发人员,您打算如何处理您的项目,每天1万条查询就足够了吗?

google-api youtube-api quota youtube-data-api

11
推荐指数
1
解决办法
2721
查看次数

在 Pytube 中获取 Http 错误 404。这是什么原因?

错误信息/代码

此代码曾经在 4 天前工作,现在显示错误。我尝试使用 pytube3 但这没有帮助。

from pytube import YouTube** 
YouTube('https://www.youtube.com/watch?v=JbBsqmKclXE').streams**
Run Code Online (Sandbox Code Playgroud)

()
----> 1 YouTube('https://www.youtube.com/watch?v=JbBsqmKclXE').streams 中的HTTPError Traceback(最近一次调用最后一次)

14 帧
/usr/lib/python3.7/urllib/request.py in http_error_default(self, req, fp, code, msg, hdrs)

647 class HTTPDefaultErrorHandler(BaseHandler):
648     def http_error_default(self, req, fp, code, msg, hdrs):
Run Code Online (Sandbox Code Playgroud)

--> 649 引发 HTTPError(req.full_url, code, msg, hdrs, fp) 650 651 类 HTTPRedirectHandler(BaseHandler):

HTTPError:HTTP 错误 404:未找到

python youtube-api http-error pytube

11
推荐指数
1
解决办法
7666
查看次数

谷歌播放开发者控制台离开共享帐户

我遇到了谷歌播放开发者控制台的问题.很久以前我被邀请在控制台中共享帐户,但现在当我尝试查看此帐户时,我收到一条消息"开发者帐户无效",但此帐户位于我的"共享帐户"列表中.所以问题是,如何离开这个帐户?

google-developers-console google-play-console

10
推荐指数
0
解决办法
578
查看次数

Google Calendar API - 不再被授权读取?

因此,使用日历 API 从公开可用的 Google 日历中提取所有事件。

这一直工作到今天早上。

由于我没有更新或进行任何数据更改,我们已经实现了一个 API 密钥来访问只读数据,如下所示:

https://www.googleapis.com/calendar/v3/calendars/[calendar ID]/events?timeZone=EDT&timeMin=2020-06-30T04:00:00.000Z&maxResults=6&singleEvents=true&orderBy=startTime&key=[API key]
Run Code Online (Sandbox Code Playgroud)

昨天拉好了,今天回来了:

代码:401 消息:凭据无效

对此有何想法?它影响了这个日历代码的几个实现(不同的键、域等),但具有相同的基本方法。

我还没有实现 gapi 客户端 javascript 库,现在可以开始研究了。

javascript google-calendar-api

10
推荐指数
1
解决办法
667
查看次数

2022 年 5 月 30 日之后,当“不太安全的应用程序”不再是一个选项时,如何使用 PHPMailer?

我已经使用PHPMailer很长时间了,通过启用"Less secure app"Google 设置中的选项,使用 Google 凭据(登录名和密码)发送电子邮件。

Google 通知,2022 年 5 月 30 日之后,Google 将不允许使用"Less secure app".

安全性较低的应用和您的 Google 帐户

在此输入图像描述

有没有其他方法可以从PHPMailer使用 Gmail SMTP 发送电子邮件而不使用该"Less secure app"功能?

php gmail smtp phpmailer

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