我有一个可调用的函数,我想在其中访问Sheets API,但没有服务帐户,我想模拟用户。问题是我不想向客户端发送授权URL。用户已经在客户端与Google一起登录了Firebase应用,并同意了我需要的所有范围(包括Sheets API范围)的权限,因此我想知道是否可以在context参数中使用auth对象代表用户与其他API进行身份验证的可调用函数。
function exportSpreadsheets(data, context)
{
const {google} = require('googleapis');
//How do I create an OAuth2 object I can use to access the API
//without having to send the user an authentication link?
//Maybe using the data in context.auth.token?
const auth = new google.auth.OAuth2();
const sheets = google.sheets({version: 'v4', auth});
sheets.spreadsheets.create()
.then(x =>
{
console.log(x);
});
}
我尝试了上面的代码,但是它不起作用。我在努力了解所有OAuth2流程。
谢谢!
答案 0 :(得分:0)
我知道了! 正确的方法是将客户端的访问令牌作为参数发送给函数,并使用它代表用户访问API。像这样:
def compare_lists(list1, list2):
if not list1 or not list2:
return False
else:
return all(x1 == x2 for x1, x2 in zip(list1, list2))
此外,您还必须发送提供商的访问令牌(在本例中为Google),而不是Firebase的访问令牌。