热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

GoogleSheetsAPI:调用未定义函数GuzzleHttp\Psr7\stream_for()

我目前正在开发一个WordPress插件,该插件可以从用户那里获取数据并将其附加到GoogleSprea

我目前正在开发一个WordPress插件,该插件可以从用户那里获取数据并将其附加到Google Spreadsheet,该功能在该插件上进行了一些修改之前可以正常工作,但是不再起作用,我可以似乎无法使其正常工作,无论我做什么,我都会不断收到与Sheets库相关的错误消息。

[06-Dec-2019 15:19:04 UTC] PHP Fatal error: Uncaught Error: Call to undefined function GuzzleHttp\Psr7\stream_for() in C:\laragon\www\wp\wp-content\plugins\so-application\includes\sheet\vendor\guzzlehttp\psr7\src\Request.php:54
Stack trace:
#0 C:\laragon\www\wp\wp-content\plugins\so-application\includes\sheet\src\Google\Service\Resource.php(201): GuzzleHttp\Psr7\Request->__construct('POST',Object(GuzzleHttp\Psr7\Uri),Array,'{"values":{"val...')
#1 C:\laragon\www\wp\wp-content\plugins\so-application\includes\sheet\vendor\google\apiclient-services\src\Google\Service\Sheets\Resource\SpreadsheetsValues.php(65): Google_Service_Resource->call('append','Google_Service_...')
#2 C:\laragon\www\wp\wp-content\plugins\so-application\index.php(52): Google_Service_Sheets_Resource_SpreadsheetsValues->append('7aczdGugRueztuJ...','A1',Object(Google_Service_Sheets_ValueRange),Array)
#3 C:\laragon\www\wp\wp-includes\class-wp-hook.php(288): SO_Plugin->initialize('')
#4 C:\laragon\www\wp\wp-includes\class-wp-hook.php(312): WP_Hook->apply_filters('',in C:\laragon\www\wp\wp-content\plugins\so-application\includes\sheet\vendor\guzzlehttp\psr7\src\Request.php on line 54

我尝试更新Sheets客户端库,但没有任何效果,为了缩小错误的范围,我制作了一个单独的插件,重点关注该问题,以确保没有其他冲突,下面是该类的类。插件:

/*
Plugin Name: SO Plugin
*/
// If this file is called directly,abort.
if (!defined('ABSPATH')) {
exit; //Exit if accessed directly
}
define('WP_SO_PLUGIN_VERSION','1.0.0');
define('WP_SO_PLUGIN_PATH',plugin_dir_path(__FILE__));
class SO_Plugin
{
function __construct()
{
$this->load_libs();
$this->init_hooks();
}
private function init_hooks()
{
add_action('wp_ajax_nopriv_initialize',array($this,'initialize'));
add_action('wp_ajax_initialize','initialize'));
}
private function initGoogleSheetsApi()
{
putenv('GOOGLE_APPLICATION_CREDENTIALS=' . WP_SO_PLUGIN_PATH . 'includes/sheet/serviceaccount.json'); // The service account
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->setScopes(Google_Service_Sheets::SPREADSHEETS);
$client->setapplicationName('SO Application');
$service = new Google_Service_Sheets($client);
return $service;
}
public function initialize()
{
$service = $this->initGoogleSheetsApi();
$spreadsheetId = "xxxxx"; // <- placeholder for spreadsheet ID
$range = "A1";
$valueRange = new Google_Service_Sheets_ValueRange();
$valueRange->setvalues(["values" => ["a","b"]]);
$cOnf= ["valueInputOption" => "RAW"];
$ins = ["insertDataOption" => "INSERT_ROWS"];
$result = $service->spreadsheets_values->append($spreadsheetId,$range,$valueRange,$conf,$ins);
if ($result) {
$range = $result['updates']['updatedRange'];
echo $range;
}
exit;
}
public function load_libs()
{
require_once WP_SO_PLUGIN_PATH . 'includes/sheet/vendor/autoload.php';
}
}
new SO_Plugin();

要运行该功能,请访问此WordPress挂钩:

http://localhost/wp/wp-admin/admin-ajax.php?action=initialize





推荐阅读
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 预备知识可参考我整理的博客Windows编程之线程:https:www.cnblogs.comZhuSenlinp16662075.htmlWindows编程之线程同步:https ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 本文介绍了UVALive6575题目Odd and Even Zeroes的解法,使用了数位dp和找规律的方法。阶乘的定义和性质被介绍,并给出了一些例子。其中,部分阶乘的尾零个数为奇数,部分为偶数。 ... [详细]
author-avatar
平凡的淘淘不绝_587
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有