我有一堆JSON格式的cookie。它们是从名为EditThisCookie的插件中导出cookie的结果。请求在cookieJar中设置cookie,包括子域名
我试图解析JSON cookie数组并将它们添加到cookiejar。我这样做,像这样:
JSONCookies.forEach(cookie => {
let extensions = [
'session=true',
'sameSite=no_restriction'
];
cookies.push(new ToughCookie.Cookie({
key: cookie.name,
value: cookie.value,
secure: cookie.secure || false,
path: cookie.path,
httpOnly: cookie.httpOnly || false,
extensions: extensions
}));
// Set the uid property of object with users ID
if(cookie.name === 'c_user') {
this.uid = cookie.value;
}
})
我将它们添加到请求的cookiejar:
cookies.forEach(function(cookie) {
cookieJar.setCookie(cookie, 'https://facebook.com', (err, cookie) => {
if(err) {
reject(new Error(err));
return;
}
})
})
...这工作正常。我可以向Facebook发出请求并从我们的业务组中提取数据。
但是,Facebook上的许多请求都使用子域名。如upload.facebook.com
。这不起作用。很明显,因为我错过了cookie中的domain
。
所以,我创建了韧体饼干并添加了domain: '.facebook.com'
。除了现在当我做出一个错误失败的请求:
Error: Cookie not in this host's domain. Cookie:facebook.com Request:null
我怎么能设置的Cookie在cookiejar跨子域工作?可能吗?
该文档不是很好,我一直无法找到如何做到这一点。我认为这与传入setCookie
的网址有关。我试图改变这种不同的变化无济于事。
@CBroe错了。过去一年,我一直在销售软件,帮助群组管理员管理群组中的垃圾邮件。由于组端点有限,因此无法使用API执行此类操作。由于我与Facebook的安全团队密切合作报告错误,Facebook已经意识到我的软件已经8个月了。他们没有问题,因为它有利于组织的所有者,并且做了API不支持的事情。 – BugHunterUK
@CBroe https://www.facebook.com/apps/site_scraping_tos_terms.php?hc_location=ufi ...查看第2条。我们公司获得Facebook的许可。任何人都可以通过填写以下表格申请许可:https://www.facebook.com/apps/site_scraping_tos.php – JamesTheHacker