gpt4 book ai didi

php - 使用服务帐户,getAccessToken() 返回 null

转载 作者:可可西里 更新时间:2023-11-01 13:26:29 26 4
gpt4 key购买 nike

我正在运行以下 PHP 代码,使用此处找到的客户端库:https://code.google.com/p/google-api-php-client/ .我没有收到任何此代码的错误,但是当我调用 getAccessToken() 时,它返回 null。

我已允许在我的个人日历上访问此服务帐户,并已通过 API 控制台授予对该项目的完全访问权限。

有什么想法吗?

require_once 'google-api-php-client/src/Google_Client.php';

const CLIENT_ID = 'blahblahblah';
const SERVICE_ACCOUNT_NAME = 'blahblahblah@developer.gserviceaccount.com';
const KEY_FILE = 'path/to/privatekey.p12';

$google_client = new Google_Client(); // created only to initialized static dependencies
$client = new Google_OAuth2(); // you really just need Google_OAuth2

$key = file_get_contents(KEY_FILE);

$client->setAssertionCredentials(
new Google_AssertionCredentials(
SERVICE_ACCOUNT_NAME,
array('https://www.googleapis.com/auth/calendar'),
$key
)
);

var_dump($client->getAccessToken());

最佳答案

出于某种原因,这似乎有效:

require_once 'google-api-php-client/src/Google_Client.php';

const CLIENT_ID = 'blahblahblah';
const SERVICE_ACCOUNT_NAME = 'blahblahblah@developer.gserviceaccount.com';
const KEY_FILE = 'path/to/privatekey.p12';
const CALENDAR_SCOPE = "https://www.googleapis.com/auth/calendar";

$key = file_get_contents(KEY_FILE);
$auth = new Google_AssertionCredentials(
SERVICE_ACCOUNT_NAME,
array(CALENDAR_SCOPE),
$key
);

$client = new Google_Client();
$client->setScopes(array(CALENDAR_SCOPE));
$client->setAssertionCredentials($auth);
$client->getAuth()->refreshTokenWithAssertion();
$accessToken = $client->getAccessToken();

$client->setClientId(CLIENT_ID);

如果有人可以解释为什么这有效,请编辑此答案或评论!

关于php - 使用服务帐户,getAccessToken() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18258593/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com