【问题标题】:Saving Google API Client in PHP用 PHP 保存 Google API 客户端
【发布时间】:2017-08-04 12:35:39
【问题描述】:

如果我在这个问题中遗漏了一些明显的东西,我们深表歉意......

我有一个 index.php 文件,用于初始化 Google 客户端、设置范围、创建服务并开始从 Google 租户中提取数据。这很好用。

<?php 
require_once 'vendor/autoload.php';

const CLIENT_ID = MY CLIENT ID;
const CLIENT_SECRET = MY SECRET;
const REDIRECT_URI = REDIRECT URI;


session_start();

$client = new Google_Client();
$client->setApplicationName("My Application");
$client->setClientId(CLIENT_ID);
$client->setClientSecret(CLIENT_SECRET);
$client->setRedirectUri(REDIRECT_URI);
$client->setScopes('admin scopes');


$adminservice = new Google_Service_Directory($client);

我的问题是,我想从 AdminDirectory API 中获取用户 ID,然后将其传递到带有 GET 标记 ID 的新页面 user.php。

所以,例如:

<?php
$id = $adminservice->users->get(EMAIL)->id;
?>

<a href = 'user.php?id=<?php echo $id; ?>'>Click Here</a>

如何将我的 $client 变量转移到这个新的 user.php 页面?

我尝试将客户端放入 $_SESSION['client'] 中,然后将其提取到新页面上。我也尝试过重新初始化整个客户端。两者似乎都不起作用。

谢谢

【问题讨论】:

  • 我知道“管理范围”不是有效范围,我只是缩短了实际范围。客户工作:)
  • 您不能在页面请求之间传输实例,因为类的方法无法序列化。您需要使用相同的代码,new Google_Client();

标签: php google-api google-api-php-client


【解决方案1】:

你必须在user.php页面上导入类:

require_once 'vendor/autoload.php';

接下来,将对象存储在会话中:

$_SESSION['googleclient'] = $client;

现在要在其他页面上获取它:

$client = $_SESSION['client'];

如果您需要更多帮助,请查看:move object from 1 page to another?

【讨论】:

    猜你喜欢
    • 2020-09-23
    • 2016-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多