Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-googlesheetsapioauth2-can';得不到代币_Php_Access Token_Google Sheets Api - Fatal编程技术网

PHP-googlesheetsapioauth2-can';得不到代币

PHP-googlesheetsapioauth2-can';得不到代币,php,access-token,google-sheets-api,Php,Access Token,Google Sheets Api,我正在尝试创建一个令牌/刷新令牌,这样我的网站就可以在不向最终用户请求权限的情况下向Google Sheets提交数据,而我现在已经为此挣扎了几个小时 我尝试了在web+Google的文档中找到的许多不同的代码,我取得了一些进展,但我无法让它工作,我也不知道我缺少了什么 在这一点上,我没有得到任何错误(也没有在我的日志中),但我也没有得到任何重定向或授权应用程序的新窗口 <?php session_start(); require_once('php-google-oau

我正在尝试创建一个令牌/刷新令牌,这样我的网站就可以在不向最终用户请求权限的情况下向Google Sheets提交数据,而我现在已经为此挣扎了几个小时

我尝试了在web+Google的文档中找到的许多不同的代码,我取得了一些进展,但我无法让它工作,我也不知道我缺少了什么

在这一点上,我没有得到任何错误(也没有在我的日志中),但我也没有得到任何重定向或授权应用程序的新窗口

<?php
    session_start();

    require_once('php-google-oauth/Google_Client.php');
    include_once('lib/autoload.php');
    include_once('php-google-oauth/auth/Google_OAuth2.php');

    $CLIENT_ID = 'xxxxxxxxxxxx.apps.googleusercontent.com';
    $SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxx';
    $REDIRECT = 'http://mywebsite.com';
    $APIKEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
    // $KEY = file_get_contents('php-google-oauth/client_secret.json');

    $client = new Google_Client();
    $client->setApplicationName("Contacts to Google Sheets");
    $client->setClientId($CLIENT_ID);
    $client->setClientSecret($SECRET);
    $client->setRedirectUri($REDIRECT);
    $client->setScopes(array('https://spreadsheets.google.com/feeds'));
    $client->setAccessType('offline');   // Gets us our refresh token

    // Step 1:  The user has not authenticated so we give them a link to login
    if (!$client->getAccessToken() && !isset($_SESSION['token'])) {
        $authUrl = $client->createAuthUrl();
    }

    // Step 2: The user accepted your access now you need to exchange it.
    if (isset($_GET['code'])) {
        $client->authenticate($_GET['code']);
        $_SESSION['token'] = $client->getAccessToken();
        header('Location: ' . filter_var($REDIRECT, FILTER_SANITIZE_URL));
    }

    // Step 3: We have access we can now create our service
    if (isset($_SESSION['token'])) {
        $client->setAccessToken($_SESSION['token']);
        $token = $client->getAccessToken();
    }

    echo '<script>console.log("TOKEN: '. $token .'");</script>';
?>


提前谢谢

我查看了我的代码并尝试了这个-

// Step 1:  The user has not authenticated so we give them a link to login
if (!$client->getAccessToken() && !isset($_SESSION['token'])) {
    $authUrl = $client->createAuthUrl();
    echo '<a href="'. $authUrl . '">Click here</a>';
}
//第1步:用户尚未通过身份验证,因此我们给他们一个登录链接
如果(!$client->getAccessToken()&&!isset($\u会话['token'])){
$authUrl=$client->createAuthUrl();
回声';
}

现在我确实从谷歌取回了一个令牌

我查看了我的代码并尝试了这个-

// Step 1:  The user has not authenticated so we give them a link to login
if (!$client->getAccessToken() && !isset($_SESSION['token'])) {
    $authUrl = $client->createAuthUrl();
    echo '<a href="'. $authUrl . '">Click here</a>';
}
//第1步:用户尚未通过身份验证,因此我们给他们一个登录链接
如果(!$client->getAccessToken()&&!isset($\u会话['token'])){
$authUrl=$client->createAuthUrl();
回声';
}
现在我确实从谷歌那里得到了一个代币

如果它能帮助你,试着检查一下。如果您正确设置代码,它可以作为您的指南。另外,请确保您阅读了关于在Sheets API中授权请求的内容。另一件事是您应该在开发人员控制台中启用sheetsapi来访问这个API。有关详细信息,请选中此项。如果此项对您有帮助,请尝试选中此项。如果您正确设置代码,它可以作为您的指南。另外,请确保您阅读了关于在Sheets API中授权请求的内容。另一件事是您应该在开发人员控制台中启用sheetsapi来访问这个API。有关更多信息,请查看此。