调用 google sheet api 会引发错误 localhost 当前无法处理此请求。 HTTP 错误 500

Posted

技术标签:

【中文标题】调用 google sheet api 会引发错误 localhost 当前无法处理此请求。 HTTP 错误 500【英文标题】:Calling google sheets api throws errors localhost currently unable to handle this request. HTTP ERROR 500 【发布时间】:2020-08-14 14:53:41 【问题描述】:

首先抱歉英语不好。我正在为我的网络项目使用 Google Sheets API,并且我正在关注 Google Sheets API 文档。 OAuth 2.0 流程进展顺利,我正在获取访问令牌,但是当控制到达 $response = $service->spreadsheets_values->get($spreadsheetId,$range); 时,它显示 localhost 当前无法处理此请求。 HTTP ERROR 500。我也在使用 ngrok 将我的本地主机暴露给谷歌

    require_once APPPATH."third_party/googleClientLibrary/vendor/autoload.php";
    session_start();
    $client = new Google_Client();
    $client->setAuthConfig(APPPATH."third_party/googleClientLibrary/client_secret.json");
    $client->setScopes(Google_Service_Sheets::SPREADSHEETS_READONLY); 
    $client->setAccessType('offline');
    $client->authenticate($_GET['code']);
    $_SESSION['access_token']= $client->getAccessToken();

     if (isset($_SESSION['access_token'])) 
     
    $client->setAccessToken($_SESSION['access_token']);
    $service = new Google_Service_Sheets($client);
    $spreadsheetId = '1Wr_6u4fO7NNWHeYsdTm0S-z9UU3NtPMdwIhkrSAfEpA';
    $range = 'Test-sheet!A:E';
    $response = $service->spreadsheets_values->get($spreadsheetId,$range);
    $values = $response->getValues();
    `

【问题讨论】:

为什么不在quickstart推荐的那一天做令牌的认证和创建呢? 感谢您的回复。实际上我希望 tp 为 web 应用程序执行此任务。我正在关注这个链接developers.google.com/identity/protocols/oauth2/web-server你能帮我吗?我是初学者,我会感谢这种善举 最好关注this workflow。你需要实现oauth2callback.php。你为什么使用setSCoeps 而不是文档中的$client->addScope。您是否从 GCP 下载了正确的 WebApp 凭据? 根据您的建议,我将设置范围更改为添加范围,但结果实际上仍然相同,当用户授予权限时,我上面提到的代码在重定向 uri 中,然后控制进入此代码块是的,我下载正确凭据即使我已经使用 var dump 看到了带有刷新令牌的访问令牌,一切都很顺利,用户授予权限,然后在此之后我获得授权代码并使用此代码我也获得访问令牌,但是当控制达到 $response = $service- >spreadsheets_values->get($spreadsheetId,$range) 它抛出错误 http 500 嗨,兄弟,希望你会没事我已经解决了这个问题我使用的是最新版本的 php 客户端库,其中的一些功能与 php 5.5 版不兼容,所以我通过使用旧版本的php 客户端库。我们也可以通过将版本升级到 php 7 来解决这个问题,谢谢你的帮助,祝福 【参考方案1】:

我使用的是php客户端库realease 2.4.1,这个库的一些功能需要php版本7。我的 php 版本是 5,所以我使用的是旧版本的客户端库

【讨论】:

以上是关于调用 google sheet api 会引发错误 localhost 当前无法处理此请求。 HTTP 错误 500的主要内容,如果未能解决你的问题,请参考以下文章

如何将此调用缓存到 Google Sheets API?

从 Google Sheet API v4 追加数据不再起作用

python google sheet API的无效JSON有效负载错误

如何在 google sheet api 中获取列标题及其名称的映射?

Discord bot 无法访问 Google Sheets 获取错误请求缺少有效的 API 密钥

Python GET - 对 Bigquery API 的调用会引发超出期限的错误