首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用google-api-php-client在特定的google电子表格上写入值。

使用google-api-php-client在特定的google电子表格上写入值。
EN

Stack Overflow用户
提问于 2016-08-24 17:44:29
回答 1查看 1.7K关注 0票数 0

我试图使用google-api-php-client定期从另一个源(MySQL查询)转储一些数据

转到特定的Google电子表格

最后的结果应该是一个php脚本,它运行在我的服务器的cron中,定期将一些数据从SQL查询中转储到我的特定google电子表格中。

我有谷歌文档里的所有东西。

serviceID,Json键,电子表格ID,范围

实际上我能从我的电子表格中读到一个范围

问题是..。如何使用google客户端在电子表格中写入数据?

这是我用来从电子表格中读取数据的代码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <?php
error_reporting(E_ALL);
ini_set("display_errors", 1); 
set_include_path(get_include_path() . PATH_SEPARATOR . __DIR__.'/google-api-php-client/src');
require_once 'Google/autoload.php';


$key = json_decode(file_get_contents('myJasonkeyFile.json'));
$service_account_email='[SERVICE_EMAIL]@myproject.iam.gserviceaccount.com';
$appName='project-name';
$scopes = array(Google_Service_Sheets::SPREADSHEETS);


            $credentials = new Google_Auth_AssertionCredentials(
                $service_account_email,    // it's the client email
                $scopes,   // it's google spreadsheet scope
                $key->private_key         // here is the private key
            );

$client = new Google_Client();
$client->setAssertionCredentials($credentials);

if ($client->getAuth()->isAccessTokenExpired()) {
  $client->getAuth()->refreshTokenWithAssertion();
}

$client->setApplicationName($appName);
$service = new Google_Service_Sheets($client);


$spreadsheetId = '984984kjldkjldkd0984lkjdlkdj[randomkey]';
$range = 'hoja1!A1:C4';
$response = $service->spreadsheets_values->get($spreadsheetId, $range);

$values = $response->getValues();

if (count($values) == 0) {
  print "No data found.\n";
} else {
  print "Name, Major:\n";
  foreach ($values as $row) {
    // Print columns A and E, which correspond to indices 0 and 4.
    printf("%s, %s\n", $row[0], $row[2]);
  }
}

提前感谢您的帮助

EN

回答 1

Stack Overflow用户

发布于 2016-11-07 05:21:16

此代码将向电子表格中添加一个包含所有信息的新行。我在这个部分使用了JS (参见最后一个函数,其中它提供了“value:[”)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script type="text/javascript">

    // Developer Console, https://console.developers.google.com
    var CLIENT_ID = '############-#########.apps.googleusercontent.com';
    var SECRET = '##################';
    var REDIRECT = 'http://#######.com';
    var AUTH_URL = 'https://accounts.google.com/o/oauth2/auth';
    var TOKEN_URL = 'https://www.googleapis.com/oauth2/v4/token';
    var SCOPES = ["https://www.googleapis.com/auth/spreadsheets"];
    var SPREADSHEET = '############';
    var LAST = 0;

    // var getCode = 'https://accounts.google.com/o/oauth2/auth?client_id='+ CLIENT_ID +'&scope='+ SCOPES +'&redirect_uri=http://localhost&response_type=code&access_type=offline';

    function checkAuth() {
        gapi.auth.authorize(
            {
                'client_id': CLIENT_ID,
                'scope': SCOPES.join(' '),
                'immediate': true
            }, handleAuthResult);
    }

    function handleAuthResult(authResult) {
        var authorizeDiv = document.getElementById('authorize-div');
        if (authResult && !authResult.error) {
            authorizeDiv.style.display = 'none';
            loadSheetsApi();
        } else {
            authorizeDiv.style.display = 'inline';
        }
    }

    function handleAuthClick(event) {
        gapi.auth.authorize({client_id: CLIENT_ID, scope: SCOPES, immediate: false}, handleAuthResult);
        return false;
    }

    function loadSheetsApi() {
        var discoveryUrl = 'https://sheets.googleapis.com/$discovery/rest?version=v4';
        gapi.client.load(discoveryUrl).then(setData);
    }

    function setData() {
        gapi.client.sheets.spreadsheets.values.get({
            spreadsheetId: SPREADSHEET,
            range: 'Sheet1',
        }).then(function(response) {
            var range = response.result;

            if (range.values.length > 0) {
                LAST = (range.values.length + 1);
            }
        }).then(function() {
            gapi.client.sheets.spreadsheets.values.update({
                spreadsheetId: SPREADSHEET,
                valueInputOption: 'USER_ENTERED',
                values: [ ["<?php echo $name; ?>", "<?php echo $email; ?>", "<?php echo $subject; ?>", "<?php echo $category; ?>", "<?php echo $iama; ?>", "<?php echo $country; ?>", "<?php echo $message; ?>"] ],
                range: 'Sheet1!A' + window.LAST,
            }).then(function(response) {
                // console.log('update last: ' + window.LAST);
            });
        });
    }

</script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39135459

复制
相关文章
一篇文章带你了解CSS基础知识和基本用法
相信做过网页的对Css都不是很陌生,它可以帮助我们重铸网页中很多绚丽的特效,尤其是现在Css已经发展3.0版本,很多功能更是丰富多彩,让我们的开发时间不仅大大缩短,而且还可以轻松做出许多华丽的特效,需要注意的是,Css相当于Html的一个美化装置,所以它必须依赖于Html才能发挥作用,那么今天我们就来深入了解下它吧。
前端皮皮
2020/11/26
11.2K0
一篇文章带你了解CSS基础知识和基本用法
CSS深入理解学习笔记之overflow
1、Overflow基本属性   overflow:visible(默认)/hidden/scroll/auto/inherit;   visible:超出部分可见。   hidden:超出部分隐藏。   scroll:超出可滚动。   auto:若超出才出现滚动条。   inherit:继承。(IE8+)   注:overflow-x与overflow-y值不同,其中一个属性值被赋予visible,而另一个被赋值为hidden/scroll/auto,则visible会被重置为auto。 兼容性:   
就只是小茗
2018/03/07
4.2K0
CSS深入理解学习笔记之overflow
Chrome滚动条透明的问题
在做一个小应用的时候,给一个面板设置了透明度(opacity:.9),在浏览页面的时候,发现滚动条居然透明了,如下图所示:
meteoric
2018/11/16
2K0
selenium操作滚动条和内部滚动条
js = “var q=document.documentElement.scrollTop=1200”
我去热饭
2022/05/18
3.3K0
纯滚动怎么理解_scrollview不滚动
  前面两篇博文分别介绍过偏移大小、客户区大小。本文介绍元素尺寸中内容最多的一部分——滚动scroll
全栈程序员站长
2022/09/20
1.9K0
修复一个因为 scrollbar 占据空间导致的 bug
这一个因为滚动条占据空间引起的bug, 查了一下资料, 最后也解决了,顺便研究一下这个属性, 做一下总结,分享给大家看看。
皮小蛋
2020/06/09
3.4K0
修复一个因为 scrollbar 占据空间导致的 bug
Css实现内容溢出添加横向滚动条
先放一张效果图 在这里每一个div标签包裹着一张图片和一行文字 以下代码直接copy看效果 <div class="banner"> <div class
明知山
2020/09/03
2K0
CSS设置浏览器滚动条样式及隐藏滚动条
虽然大多数人不会关注到滚动条的样式,但是有一些网站还是对滚动条进行了优化,比如网易邮箱。我们可以用 CSS 来设置浏览器的滚动条样式,下面整理一下 CSS 滚动条的几个属性及代表的意思。
德顺
2019/11/12
21.1K0
H5 项目实用
如果你关闭自动识别后 ,又希望某些电话号码能够链接到 iPhone 的拨号功能 ,那么可以通过这样来声明电话链接 ,
White feathe
2021/12/08
5.3K0
css怎么隐藏滚动条「建议收藏」
法一: ①使用伪类隐藏滚动条(仅限Chrome与Safari) ②scrollbar-width: none;(仅限firefox) ③-ms-overflow-style: none;(仅限IE 10+)
全栈程序员站长
2022/11/01
4.8K0
Keras 在fit-generator中获取验证数据的y_true和y_preds
在Keras网络训练过程中,fit-generator为我们提供了很多便利。调用fit-generator时,每个epoch训练结束后会使用验证数据检测模型性能,Keras使用model.evaluate_generator提供该功能。然而我遇到了需要提取验证集y_pred的需求,在网上没有找到现有的功能实现方法,于是自己对源码进行了微调,实现了可配置提取验证集模型预测结果的功能,记录如下。 原理简介 通过查看源代码,发现Keras调用了model.evaluate_generator验证数据,该函
为为为什么
2022/08/05
1.3K0
Keras 在fit-generator中获取验证数据的y_true和y_preds
使用CSS隐藏元素滚动条
如何隐藏滚动条,同时仍然可以在任何元素上滚动? 首先,如果需要隐藏滚动条并在内容溢出时显示滚动条,只需要设置overflow:auto样式即可。想要完全隐藏滚动条只需设置overflow:hidden即可,但是这样一来将导致元素内容不可滚动。时至今日,还没有任何一条CSS规则可以使元素可以隐藏滚动条的同时依然可以滚动内容,只能通过针对特定浏览器设置滚动条样式来实现。 Firefox浏览器 对于Firefox,我们可以将滚动条宽度设置为none:
用户6167509
2019/09/04
4.8K0
html中div加滚动条
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/158145.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/14
6.1K0
html div 隐藏滚动条样式,div滚动条样式隐藏与显示
DIV滚动条样式是可以设置的,CSS滚动条同样也可以显示与隐藏,对div设置滚动条,设置其横向滚动条和纵向滚动条样式应该怎么做呢?
全栈程序员站长
2022/09/14
8.9K0
后视镜加热按键图标_js点击按钮弹出图片
适用浏览器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗。
全栈程序员站长
2022/11/08
27.8K0
后视镜加热按键图标_js点击按钮弹出图片
JavaScript DOM元素尺寸和位置
三大点: 1.获取元素CSS大小 2.获取元素实际大小 3.获取元素周边大小 一.获取元素CSS大小 1.通过style内联获取元素的大小 var box = document.getElementById('box');//获取元素 box.style.width;//200px、空 box.style.height;//200px、空 PS:style获取只能获取到行内style属性的CSS样式中的宽和高,如果有 获取;如果没有则返回空。 2.通过计算获取元素的大小 var style = windo
汤高
2018/01/11
2.8K0
html滚动条使用,以及页面有多个div块,如何让body页面不使用滚动条,只在某个div内使用滚动条
2,页面有多个div块,如何让body页面不使用滚动条,只在某个div内使用滚动条
全栈程序员站长
2022/08/05
4.8K0
html滚动条使用,以及页面有多个div块,如何让body页面不使用滚动条,只在某个div内使用滚动条
html 怎么去掉网页的滚动条
这个是y轴有滚动条,x轴没有。如果是都要滚动条就去掉overflow-x:hidden;,如果是反正哪个轴要滚动条就加上overflow-x/y:scroll;整个页面滚动条就加在body里面,div里面出现滚动条就加在div里面。
全栈程序员站长
2022/07/08
3K0
第141天:前端开发中浏览器兼容性问题总结(二)
在浏览器中想要垂直居中,设置vertical-align:middle; 不起作用。例如:ie6下文本与文本输入框对不齐,需设置vertical-align:middle,但是文本框的内容不会垂直居中
半指温柔乐
2018/09/11
1.9K0
学前端到了CSS阶段,你一定要掌握这9大防御式开发技能
防御性编程是一种细致、谨慎的编程方法(习惯)。我们在写代码时常会有“以防万一”的心态,把以防万一有可能出现的情况提前考虑进去,规避以免以防万一出现带来的问题。
艾编程
2022/12/03
1.8K0
学前端到了CSS阶段,你一定要掌握这9大防御式开发技能

相似问题

背景固定和溢出-y:滚动

10

溢出-y:滚动不显示Chrome中的滚动条

52

溢出-x:隐藏和溢出-y:可见添加滚动条

17

溢出-y:滚动创建禁用的滚动条

25

CSS溢出-y:滚动滚动条位置不对

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文