Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Node.js时参数过长&;电子邮件审计API的HTTPS_Node.js_Rest_Https_Request_Google Email Audit Api - Fatal编程技术网

使用Node.js时参数过长&;电子邮件审计API的HTTPS

使用Node.js时参数过长&;电子邮件审计API的HTTPS,node.js,rest,https,request,google-email-audit-api,Node.js,Rest,Https,Request,Google Email Audit Api,我正在使用电子邮件审计API来监控我公司的电子邮件。不幸的是,我不能按照这里的说明上传我的公钥 在该示例中,我将使用google页面上给出的公钥(base64编码): LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tDQpWZXJzaW9uOiBHbn VQRyB2MS40LjEwIChHTlUvTGludXgpDQoNCm1RRU5CRXJXYUQ0QkNBQ3QybmdmczYv K1FPR1lieE5iYzNnTG5YSHRxcDdOVFR

我正在使用电子邮件审计API来监控我公司的电子邮件。不幸的是,我不能按照这里的说明上传我的公钥

在该示例中,我将使用google页面上给出的公钥(base64编码):

LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tDQpWZXJzaW9uOiBHbn
VQRyB2MS40LjEwIChHTlUvTGludXgpDQoNCm1RRU5CRXJXYUQ0QkNBQ3QybmdmczYv

K1FPR1lieE5iYzNnTG5YSHRxcDdOVFRYTlc0U0pvKy9BMW9VWm9HeEENClF4NnpGWG
hRLzhNWFc2Nis4U1RTMVlxTkpPQVJGdGpiSUtQd2pyZGN1a2RQellWS0dacmUwUmF4
Q25NeUNWKzYNCkY0WU5RRDFVZWdIVHUyd0NHUjF1aVlPZkx4VWE3L2RvNnMzMVdSVE
g4dmJ0aVBZOS82b2JFSXhEakR6S0lxWU8NCnJ2UkRXcUFMQllrbE9rSjNIYmdmeWw0
MkVzbkxpQWhTK2RNczJQQ0RpMlgwWkpDUFo4ZVRqTHNkQXRxVlpKK1INCldDMUozVU
R1RmZtY3BzRFlSdFVMOXc2WU10bGFwQys5bW1KM0FCRUJBQUcwVjBSaGMyaGxjaUJV
WlhOMElDaFUNCmRHVnlNa0JrWVhOb1pYSXRhSGxrTFhSbGMzUXVZMjl0UG9rQk9BUV
RBUUlBSWdVQ1N0Wm9QZ0liRFFZTENRZ0gNCmsxOVFja1Rwd0Jkc2tFWXVtRnZtV3Zl
NVVYMlNWVjdmek9DMG5adGdGeHRaR2xKaEdtanNBM3J4RlRsYitJcmENCldaYXlYQ1
dZaUN6ZDdtOXo1L0t5R0QyR0ZUSy85NG1kbTI1TjZHWGgvYjM1cElGWlhCSS9yWmpy
WXJoWVJCRnUNCkd0ekdGSXc5QUFuRnlVekVVVVZmUFdVdEJlNXlITVc1NEM2MG5Iaz
V4WUlhNnFGaGlMcDRQWXFaQ3JZWDFpSXMNCmZSUk9GQT09DQo9U1RIcg0KLS0tLS1F
TkQgUEdQIFBVQkxJQyBLRVkgQkxPQ0stLS0tLQ==
这是我的密码:

var params = 
    "<atom:entry xmlns:atom='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>"+
        "<apps:property name='publicKey' value='"+key+"'/>"+
    "</atom:entry>";


// An object of options to indicate where to post to
var post_options = {
    host: 'apps-apis.google.com',
    path: '/a/feeds/compliance/audit/publickey/' + encodeURIComponent(domain),
    method: 'POST',
    headers: {
      'Authorization': 'OAuth ' + token,
      'Content-Type': 'application/atom+xml;charset=utf-8',
    }
};

// Set up the request
var post_req = https.request(post_options, function(res) {
    res.setEncoding('utf8');

    res.on('data', function (chunk) {
        console.log("REPONSE");
        console.log("-------");
        console.log(chunk);
    });
});

// post the data
post_req.write(params);
post_req.end();
还是同样的问题:

REPONSE
-------
<?xml version="1.0" encoding="UTF-8"?>
<AppsForYourDomainErrors>
  <error errorCode="1411" invalidInput="LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tDQpWZXJzaW9uOiBHbn VQRyB2MS40LjEwIChHTlUvTGludXgpDQoNCm1RRU5CRXJXYUQ0QkNBQ3QybmdmczYv  K1FPR1lieE5iYzNnTG5YSHRxcDdOVFRYTlc0U0pvKy9BMW9VWm9HeEENClF4NnpGWG hRLzhNWFc2Nis4U1RTMVlxTkpPQVJGdGpiSUtQd2pyZGN1a2RQellWS0dacmUwUmF4 Q25NeUNWKzYNCkY0WU5RRDFVZWdIVHUyd0NHUjF1aVlPZkx4VWE3L2RvNnMzMVdSVE g4dmJ0aVBZOS82b2JFSXhEakR6S0lxWU8NCnJ2UkRXcUFMQllrbE9rSjNIYmdmeWw0 MkVzbkxpQWhTK2RNczJQQ0RpMlgwWkpDUFo4ZVRqTHNkQXRxVlpKK1INCldDMUozVU R1RmZtY3BzRFlSdFVMOXc2WU10bGFwQys5bW1KM0FCRUJBQUcwVjBSaGMyaGxjaUJV WlhOMElDaFUNCmRHVnlNa0JrWVhOb1pYSXRhSGxrTFhSbGMzUXVZMjl0UG9rQk9BUV RBUUlBSWdVQ1N0Wm9QZ0liRFFZTENRZ0gNCmsxOVFja1Rwd0Jkc2tFWXVtRnZtV3Zl NVVYMlNWVjdmek9DMG5adGdGeHRaR2xKaEdtanNBM3J4RlRsYitJcmENCldaYXlYQ1 dZaUN6ZDdtOXo1L0t5R0QyR0ZUSy85NG1kbTI1TjZHWGgvYjM1cElGWlhCSS9yWmpy WXJoWVJCRnUNCkd0ekdGSXc5QUFuRnlVekVVVVZmUFdVdEJlNXlITVc1NEM2MG5Iaz V4WUlhNnFGaGlMcDRQWXF
REPONSE
-------
aQ3JZWDFpSXMNCmZSUk9GQT09DQo9U1RIcg0KLS0tLS1F TkQgUEdQIFBVQkxJQyBLRVkgQkxPQ0stLS0tLQ==" reason="EncryptionPublicKeyInvalidFormat" />
</AppsForYourDomainErrors>
响应
-------

我已经没有主意了,欢迎提供任何帮助:)

您的base64编码字符串中有空格(这在响应中显示)。删除空格(例如,
键。替换(/\s/g,”)
),您应该可以了。

我找到了一个使用的解决方案

现在它工作得很好。以下是可能需要它的人的代码:

function uploadPublicKey(domain, key, token) {
    var params = 
        "<atom:entry xmlns:atom='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>"+
            "<apps:property name='publicKey' value='"+key+"'/>"+
        "</atom:entry>";


    unirest
    .post('https://apps-apis.google.com/a/feeds/compliance/audit/publickey/' + encodeURIComponent(domain))
    .headers({
        'Authorization': 'OAuth ' + token,
        'Content-Type': 'application/atom+xml;charset=utf-8',
        'Content-Length': params.length}
        )
    .send(params)
    .end(function (response) {
        console.log(response.body);
    });
}
函数上传公钥(域、密钥、令牌){
变量参数=
""+
""+
"";
优利斯特
.post('https://apps-apis.google.com/a/feeds/compliance/audit/publickey/“+encodeURIComponent(域))
.标题({
“授权”:“OAuth”+令牌,
“内容类型”:“应用程序/atom+xml;字符集=utf-8”,
“内容长度”:params.Length}
)
.send(参数)
.end(功能(响应){
console.log(response.body);
});
}
基于

尝试上载无效密钥将返回错误代码1411(EncryptionPublicKeyInvalidFormat)

还请注意,无效的OpenPGP密钥通常是最常见的错误原因。为此,请尝试按照电子邮件审核API的分步说明摘要进行操作。上一步提到的再次检查您是否复制了所有行,包括标题,并且没有添加任何额外的行。

最后,在中,首先使用base64编码的公钥创建一个XML条目,如下例所示:

<atom:entry xmlns:atom='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>
<apps:property name="publicKey" value="the base64 Encoded Key"/>
</atom:entry>
如果成功,服务器将返回在Google Data API文档中找到的201创建状态代码


请尝试查看给定的文档,以获取更多信息,包括授权协议的详细信息。

Thx获得答案,但问题不是从这里来的,我已经尝试过同样的问题;只是在第一个响应中有更多的字符。
function uploadPublicKey(domain, key, token) {
    var params = 
        "<atom:entry xmlns:atom='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>"+
            "<apps:property name='publicKey' value='"+key+"'/>"+
        "</atom:entry>";


    unirest
    .post('https://apps-apis.google.com/a/feeds/compliance/audit/publickey/' + encodeURIComponent(domain))
    .headers({
        'Authorization': 'OAuth ' + token,
        'Content-Type': 'application/atom+xml;charset=utf-8',
        'Content-Length': params.length}
        )
    .send(params)
    .end(function (response) {
        console.log(response.body);
    });
}
<atom:entry xmlns:atom='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>
<apps:property name="publicKey" value="the base64 Encoded Key"/>
</atom:entry>
POST https://apps-apis.google.com/a/feeds/compliance/audit/publickey/{domain name}