我使用它作为参考https://github.com/ruucm/react-google-sheets 但每当我运行它时我都会收到一个 gapi 404 错误我有预感 github 链接不存在,因此我的应用程序不能工作
或者也许我错了。
是否有一个非常好的参考资料,我可以将数据从 react js 发送到谷歌电子表格?
我已经在电子表格上尝试了很多次尝试,但它在电子表格中将数据提供给应用程序的位置正好相反我需要的是对电子表格做出反应
import React, { Component } from 'react';
import ReactGoogleSheets from 'react-google-sheets';
class GoogleSheets extends Component {
constructor(props) {
super(props)
this.state = {
sheetLoaded: false,
}
}
render() {
return (
<ReactGoogleSheets
clientId={'243...apps.googleusercontent.com'}
apiKey={'AIza...'}
spreadsheetId={'2PAC...'}
afterLoading={() => this.setState({ sheetLoaded: true })}
>
{this.state.sheetLoaded ?
<div>
{/* Access Data */}
{console.log('Your sheet data : ', this.props.getSheetsData( 'gSheets' ))}
{/* Update Data */}
<button onClick={() => {
this.props.updateCell( …Run Code Online (Sandbox Code Playgroud) 我正在https://localhost:44367/上测试我的本地应用程序,使用 Chrome 进行谷歌登录。
我的应用程序是使用 .Net 核心的 Angular 6
当我尝试使用我的凭据登录时,出现错误提示
无法登录此浏览器或应用程序可能不安全。尝试使用其他浏览器。如果您已经在使用受支持的浏览器,则可以刷新屏幕并再次尝试登录。
这曾经在本地工作,但从今天起停止工作。
请帮我
谢谢
在我的Web应用程序中,我允许用户使用API客户端库中的auth命令登录,但我找不到Google API JavaScript客户端库的Logout选项.
任何人都可以建议我如何退出我的应用程序以及谷歌帐户?
我的登录代码是:
var OAUTHURL = 'https://accounts.google.com/o/oauth2/auth?';
var VALIDURL = 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=';
var SCOPE = 'https://www.googleapis.com/auth/userinfo.profile';
var CLIENTID = googleAPI;
var REDIRECT = redirectUrl;
var TYPE = 'token';
var _url = OAUTHURL + 'scope=' + SCOPE + '&client_id=' + CLIENTID + '&redirect_uri=' + REDIRECT + '&response_type=' + TYPE;
var acToken;
var tokenType;
var expiresIn;
var user;
$('#googleLogin').click(function(){
var win = window.open(_url, "windowname1", 'width=800, height=600');
var pollTimer = window.setInterval(function () {
if (win.document.URL.indexOf(REDIRECT) != -1) {
window.clearInterval(pollTimer);
var url = …Run Code Online (Sandbox Code Playgroud) 我正在移植一些现有的 js 代码,通过谷歌云平台进行身份验证(因为它们正在迁移到一组新的库)。
(迁移指南:https://developers.google.com/identity/oauth2/web/guides/migration-to-gis)
我正在努力获取玩家的个人资料(以获取他们的电子邮件)。
旧的方法将遵循这一点(但正如它所说,它现在已被弃用 - 我一直在阅读新文档,但它主要围绕获得授权/身份验证而不是后续内容): https:// Developers.google.com/identity/sign-in/web/people
例如
var profile = auth2.currentUser.get().getBasicProfile();
var email = profile.getEmail();
Run Code Online (Sandbox Code Playgroud)
在我的新代码中,我通过新方法获得了访问令牌:
client_id: vm.clientId,
scope: SCOPE,
callback: (tokenResponse) => {
if (tokenResponse && tokenResponse.access_token) {
access_token = tokenResponse.access_token;
// HERE??? HOW DO I GET THE PROFILE?
}
}
})
Run Code Online (Sandbox Code Playgroud)
(主要取自https://developers.google.com/identity/oauth2/web/guides/use-token-model)
我在其他地方看到过这一点,但至少在我的情况下不起作用:
gapi.client.oauth2.userinfo.get().execute(function (resp) {
console.log(resp);
})
Run Code Online (Sandbox Code Playgroud)
(如何从 Google Identity Services 获取个人资料信息?)
我已阅读迁移指南:“相反,请使用对新 JWT CredentialResponse 对象中的凭据子字段的直接引用来处理用户配置文件数据。” 但不知道如何获得此 Credentialresponse?(https://developers.google.com/identity/gsi/web/guides/migration#token_response)
javascript google-api google-api-js-client google-cloud-platform google-signin
通过完整范围的 OAuth 成功验证后:
https://www.googleapis.com/auth/drive`
Run Code Online (Sandbox Code Playgroud)
我根据创建文件夹中的示例创建了一个文件夹
var fileMetadata = {
'name' : name,
'mimeType' : 'application/vnd.google-apps.folder',
// 'parents': [ parent ]
};
gapi.client.drive.files.create({
resource: fileMetadata,
fields: 'id'
}, function(err, file) {
if(err) {
// Handle error
console.log(err);
} else {
console.log('Folder Id: ', file.id);
return file.id;
}
});
Run Code Online (Sandbox Code Playgroud)
回调函数永远不会被调用,控制台中没有错误。
我怎样才能知道发生了什么?
我正在尝试在 react js 应用程序中实现谷歌日历 api 的这个vanilla js 示例。vanilla JS 示例在我的本地机器上运行良好。但是在反应中实现相同的功能时遇到了很多麻烦。请在下面检查我的代码:
class App extends React.Component{
constructor(props) {
super(props);
var CLIENT_ID = '992549188018-3prg54pp18je3e3qhgcttgl11491c4dm.apps.googleusercontent.com';
var DISCOVERY_DOCS = ["https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest"];
var SCOPES = "https://www.googleapis.com/auth/calendar";
this.state = {
showAuthButton: false,
showSignOutButton: false
};
this.initClient = this.initClient.bind(this);
this.updateSigninStatus = this.updateSigninStatus.bind(this);
}
handleAuthClick(){
gapi.auth2.getAuthInstance().signIn();
}
handleSignoutClick(){
gapi.auth2.getAuthInstance().signOut();
}
handleClientLoad() {
gapi.load('client:auth2', this.initClient);
}
initClient(DISCOVERY_DOCS, CLIENT_ID, SCOPES) {
gapi.client.init({
discoveryDocs: DISCOVERY_DOCS,
clientId: CLIENT_ID,
scope: SCOPES
}).then(function () {
console.log(window.gapi);
// Listen for sign-in state changes.
window.gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus);
// …Run Code Online (Sandbox Code Playgroud) javascript calendar google-calendar-api google-api-js-client reactjs
这个问题以前有人问过,但答案是使用 API V2。google 文档没有说明如何使用 javascript 客户端代码创建包含其内容的文件。我尝试使用 Node 下列出的代码,但是,它只创建文件,不插入任何内容。这是我的代码:
let fileMetadata = {
'name': name,
parents: [parentId]
};
let media = {
mimeType: 'text/plain',
body: 'content inside file'
};
gapi.client.drive.files.create({
resource: fileMetadata,
media,
fields: 'id'
})
.then(response => {
console.log('response: ', response);
})
.catch(() => {
console.log('something is wrong');
});
Run Code Online (Sandbox Code Playgroud)
有人可以帮我将内容插入文件吗?
我已经构建了一个能够阅读任何 Youtube 视频成绩单 (gapi.client.youtube.captions.download) 的 javascript 代码。auth 2.0 工作正常,我在本地网络服务器上运行我的应用程序一切正常,问题是当我运行请求时出现错误 403:cb=gapi.loaded_0:164 GET https://content.googleapis。 com/youtube/v3/captions/My_API_Key 403 我在 StackOverflow 中没有找到任何解决方案......知道吗?
这是我的js文件:
const CLIENT_ID = 'My_Client_ID';
const DISCOVERY_DOCS = ["https://www.googleapis.com/discovery/v1/apis/youtube/v3/rest"];
const SCOPES = 'https://www.googleapis.com/auth/youtube.readonly';
const authorizeButton = document.getElementById('enter-button');
const signoutButton = document.getElementById('exit-button');
const content = document.getElementById('content');
// default youtube channel
const defaultChannel = 'googledevelopers';
// Load auth2 library
function handleClientLoad(){
gapi.load('client:auth2', initClient);
}
// Init API client library and set up sing in listeners
function initClient(){
gapi.client.init({
discoveryDocs: DISCOVERY_DOCS,
clientId: CLIENT_ID,
scope: SCOPES
}).then(() …Run Code Online (Sandbox Code Playgroud) javascript youtube google-api-js-client google-apis-explorer
我真的很难理解如何删除谷歌gapi事件监听器。下面粗体是所讨论的完整功能。
window.gapi.auth2.getAuthInstance().isSignedIn.listen(onAuthChange);
Run Code Online (Sandbox Code Playgroud)
我想在 useEffect 挂钩中使用清理函数来删除事件侦听器,但执行此操作的实际代码...我认为与简单的 javascript“removeEventListener”不同?我在谷歌文档中找不到任何内容。我的问题是我需要知道其他页面上的身份验证状态何时发生变化,并且需要其他函数在事件触发时运行(身份验证状态更改) - 但由于原始版本不断运行,我最终得到了一堆不必要的函数调用。当您登录和退出时,情况会变得更糟......随着事件侦听器的累积。
import React, { useEffect, useContext, useState } from "react";
import history from "../history";
import { GeneralContext } from "../contexts/General";
const GoogleAuth = () => {
const { state, setState } = useContext(GeneralContext);
const onAuthChange = () => {
const auth = window.gapi.auth2.getAuthInstance();
setState({ authStatus: auth.isSignedIn.get() });
if (auth.isSignedIn.get() === true) {
const token = auth.currentUser.fe.qc.access_token;
setState({ accessToken: token });
}
};
// Check auth status on mount
useEffect(() => {
window.gapi.load("client:auth2", () …Run Code Online (Sandbox Code Playgroud) javascript oauth-2.0 google-api-js-client reactjs google-signin
gsiGoogle很久以前就引入了新的 Sign In JS 库( ),但 Google Sheets 文档仍然显示了使用gapi. 将gapi 与gsi 结合/替换的最佳方法是什么?我可以举个例子吗?
javascript google-sheets google-api-js-client google-identity
javascript ×8
reactjs ×3
google-api ×2
calendar ×1
file ×1
google-sites ×1
jquery ×1
oauth-2.0 ×1
youtube ×1