此网页概述了使用OAuth连接Google GMAIL API的步骤。具有步骤的网页链接为https://developers.google.com/drive/v3/web/quickstart/php。在步骤3中,您将在代码中看到需要将define语句更新为客户机密钥json文件位置的路径。
define('CLIENT_SECRET_PATH', __DIR__ . '/client_secret.json');
在getClient函数中,此变量用作setAuthConfig
的输入$client->setAuthConfig(CLIENT_SECRET_PATH);
这意味着传递CLIENT_SECRET_PATH值(文件路径),然后从JSON解码。但是等等,它仍然是一条路,而不是文件的内容。因此,JSON解码失败,$ data为null。坏事发生在这里。 :(
答案 0 :(得分:0)
所以,这是问题的解决方案。谷歌在发布之前没有对代码进行测试,这非常简单明了。多么可惜!
原始代码:
function getClient() {
$client = new Google_Client();
$client->setApplicationName(APPLICATION_NAME);
$client->setScopes(SCOPES);
$client->setAuthConfig($x);
$client->setAccessType('offline');
更正代码:
function getClient() {
$client = new Google_Client();
$client->setApplicationName(APPLICATION_NAME);
$client->setScopes(SCOPES);
$x = file_get_contents(CLIENT_SECRET_PATH);
$client->setAuthConfig($x);
$client->setAccessType('offline');
我希望这会对你有所帮助。 斯科特