Google电子表格在Wordpress上出现错误

问题描述

当我尝试将数据从自定义Ajax表单存储到Google电子表格时出现错误。我已经在CORE PHP中尝试过我的代码,它可以正常工作,但是当我尝试使用wordpress做同样的事情时。这给了我错误

好吧,目前在wordpress上,我已经使用ajax数据电子邮件发送功能制作了自定义表单。现在,如果有人尝试填写详细信息并点击“发送”按钮,则数据应该存储在Google电子表格中。

我正在function.PHP中编写代码,并且已经在其中链接了autoload.PHP和credenetial.json文件。但是我仍然遇到错误

我已经在wordpress中启用了Ajax错误,如下所示。请检查,如果可能请帮助我。我正在尝试从最近3天开始解决此问题,但是在wordpress案例中没有任何效果

错误 {“ web”:{“ client_id”:“ 6532873678-gpd46lf7s4fst5d4968av6o9gb0mq763.apps.googleusercontent.com”,“ project_id”:“ gelpack-1597214746758”,“ auth_uri”:“ https://accounts.google.com/o/oauth2 /auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"BhmbMhoxvkSqTTJgPm3KuN8v “,” redirect_uris“:[” https://wordpress-253161-1294407.cloudwaysapps.com/claim-your-free-gift-parts“]}} 致命错误:未捕获的invalidargumentexception:在/home/253161.cloudwaysapps.com/qxgpxrwfhe/public_html/wp-content/themes/gelpacks/vendor/google/auth/src/OAuth2.PHP:647中缺少必需的客户端标识符:# 0 /home/253161.cloudwaysapps.com/qxgpxrwfhe/public_html/wp-content/themes/gelpacks/vendor/google/apiclient/src/Google/Client.PHP(344):Google \ Auth \ OAuth2-> buildFullAuthorizationUri(Array) #1 /home/253161.cloudwaysapps.com/qxgpxrwfhe/public_html/wp-content/themes/gelpacks/functions.PHP(665):Google_Client-> createAuthUrl()#2 /home/253161.cloudwaysapps.com/qxgpxrwfhe/public_html /wp-content/themes/gelpacks/functions.PHP(796):getClient()#3 /home/253161.cloudwaysapps.com/qxgpxrwfhe/public_html/wp-includes/class-wp-hook.PHP(287):claim_your_gift ('')#4 /home/253161.cloudwaysapps.com/qxgpxrwfhe/public_html/wp-includes/class-wp-hook.PHP(311):WP_Hook-> apply_filters('',Array)#5 / home / 253161 .cloudwaysapps.com / qxgpxrwfhe / public_html / wp-includes / plugin.PHP(478):WP_Hook-> do_第647行上的/home/253161.cloudwaysapps.com/qxgpxrwfhe/public_html/wp-content/themes/gelpacks/vendor/google/auth/src/OAuth2.PHP中的action(Array)#6 /home/253161.cloudwa 您的网站上存在严重错误结束错误

这里是代码

/**************  Google Function ***************** */

function getClient()
{
    //include_once( get_stylesheet_directory() .'/vendor/autoload.PHP');
     require_once dirname( __FILE__ ) . '/vendor/autoload.PHP';

    $client = new Google_Client();
    $client->setApplicationName('Google Sheets API PHP Quickstart');
    $client->setScopes(Google_Service_Sheets::SPREADSHEETS);
    $client->setAuthConfig(include_once( get_stylesheet_directory() .'/credentials.json'));
    $client->setAccesstype('offline');
    $client->setPrompt('select_account consent');

    // Load prevIoUsly authorized token from a file,if it exists.
    // The file token.json stores the user's access and refresh tokens,and is
    // created automatically when the authorization flow completes for the first
    // time.
    $tokenPath = 'token.json';
    if (file_exists($tokenPath)) {
        $accesstoken = json_decode(file_get_contents($tokenPath),true);
        $client->setAccesstoken($accesstoken);
    }

    // If there is no prevIoUs token or it's expired.
    if ($client->isAccesstokenExpired()) {
        // Refresh the token if possible,else fetch a new one.
        if ($client->getRefreshToken()) {
            $client->fetchAccesstokenWithRefreshToken($client->getRefreshToken());
        } else {
            // Request authorization from the user.
            $authUrl = $client->createAuthUrl();
            printf("Open the following link in your browser:\n%s\n",$authUrl);
            print 'Enter verification code: ';
            $authCode = trim(fgets(STDIN));

            // Exchange authorization code for an access token.
            $accesstoken = $client->fetchAccesstokenWithAuthCode($authCode);
            $client->setAccesstoken($accesstoken);

            // Check to see if there was an error.
            if (array_key_exists('error',$accesstoken)) {
                throw new Exception(join(',',$accesstoken));
            }
        }
        // Save the token to a file.
        if (!file_exists(dirname($tokenPath))) {
            mkdir(dirname($tokenPath),0700,true);
        }
        file_put_contents($tokenPath,json_encode($client->getAccesstoken()));
    }
    return $client;
}

// Get the API client and construct the service object.
$client = getClient();
$service = new Google_Service_Sheets($client);


$spreadsheetId = '1jrBFFWCZJ7GakSaOkcZrZk_faqng2_sgcLOxHmFOt5A';
$sheetid = 'Sheet1';

$temp_array=array();

//array_push($temp_array,[$selected_product,$date_of_purchase,$first_name,$last_name,$order_id,$email,$address,$city,$state,$zip_code,$country,$product_review,$product_radio,$make_special_offers]);
array_push($temp_array,["test1","test1","test1"]);

$values = $temp_array;
  // Append data start
$body = new Google_Service_Sheets_ValueRange([
    'values' => $values
]);
$params = [
    'valueInputoption' => 'RAW'
];
$result = $service->spreadsheets_values->append($spreadsheetId,$sheetid,$body,$params);
 printf("%d cells appended.",$result->getUpdates()->getUpdatedCells());

// End google sheet Code

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)