我在chrome扩展程序中使用react-chrome-redux堆栈。 我已经尝试过Calendar API中的Javascript / Node.js快速入门,但它们无法正常工作。
所以现在我正在尝试通过Chrome Identity API检索oAuth2令牌,然后发出HTTP请求来获取我的数据。
的manifest.json
"oauth2": {
"client_id": "CLIENT_ID.apps.googleusercontent.com",
"scopes": [
"https://www.googleapis.com/auth/calendar",
"https://www.googleapis.com/auth/calendar.readonly"
]
},
"key": APP_KEY}
HTTP请求
chrome.identity.getAuthToken({ 'interactive': false }, function(token) {
var init = {
'method' : 'GET',
'async' : true,
'headers': {
'Authorization' : 'Bearer ' + token,
'Content-Type': 'application/json'
},
'contentType': 'json'
};
fetch('https://www.googleapis.com/calendar/v3/calendars/public/events', init)
.then((response) => response.json()) // Transform the data into json
.then(function(data) {
console.log(data);
})
})
我设法从oAuth2令牌中获取一长串字符,但是当我尝试发出HTTP请求时,我收到404状态错误。
我在Stack Overflow上找了很长时间,但大多数问题都没有得到很好的解答,似乎没有一种简单的方法可以使用Chrome扩展中的API。
我真的希望有人可以帮助我,谢谢!
答案 0 :(得分:0)
@furydevoid想通了,
原来,默认日历关键字为“主要”而不是“公开”
所以现在我正在为HTTP请求执行此操作:
const headers = new Headers({
'Authorization' : 'Bearer ' + token,
'Content-Type': 'application/json'
})
const queryParams = { headers };
fetch('https://www.googleapis.com/calendar/v3/calendars/primary/events', queryParams)
.then((response) => response.json()) // Transform the data into json
.then(function(data) {
console.log(data);
})
})
对于尝试使用Chrome扩展程序中的Google Calendar API的任何人,
无论如何,这是解决方案:
一切顺利!感谢所有帮助过我的人!