Plugins list to google sheet - sosroInSpace/wordpress_wiki GitHub Wiki

Below is a script that can be used to send a list of the current instances plugins to a Google sheet.

# Plugin list to google sheet (once monthly)
0 0 1 * * /opt/bitnami/php/bin/php /home/bitnami/scripts/plugin_scripts/get_plugins.php

get_pluigins.php script

<?php

// TODO: validate input params, ignore bots...
require_once('/home/bitnami/apps/wordpress/htdocs/wp-load.php');
require_once('/home/bitnami/scripts/plugin_scripts/vendor/autoload.php'); // google-api-php-client path

$plugin_list = get_plugins();

$output = "";
foreach($plugin_list as $item) {
    $item = json_decode(json_encode($item), true);
    $name = $item["Name"];
    $version = $item["Version"];

    $output .= $name . " -- Version: " . $version . "\n";

}
echo $output;

function getClient()
{
    $client = new Google_Client();
    $client->setApplicationName('Project');
    $client->setScopes(Google_Service_Sheets::SPREADSHEETS);
    //PATH TO JSON FILE DOWNLOADED FROM GOOGLE CONSOLE FROM STEP 7
    $client->setAuthConfig('/home/bitnami/scripts/plugin_scripts/credentials.json'); 
    $client->setAccessType('offline');
    return $client;
}

// Get the API client and construct the service object.
$client = getClient();
$service = new Google_Service_Sheets($client);
$spreadsheetId = '18IBvZRe2XVPlQ3-Na_f9I2SmsknLXxtZvAoCkF8GZ8s'; // spreadsheet Id
$range = 'igawinthrop.com.au'; // Sheet name - UPDATE THIS ONLY - COINCIDE WITH SHEET NAME FROM SPREADSHEET

$valueRange= new Google_Service_Sheets_ValueRange();
$valueRange->setValues(["values" => ["a", "b"]]); // values for each cell
$valueRange->setValues(["values" => [
   $output
  , date("F j, Y, g:i a", time()) 
]]);

$conf = ["valueInputOption" => "RAW"];
$response = $service->spreadsheets_values->append($spreadsheetId, $range, $valueRange, $conf);


credentials.json

{
  "type": "service_account",
  "project_id": "polished-bridge-305205",
  "private_key_id": "f48db56fa8bb2481d675f7f5085c6cc54d166bef",
  "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCmM9uoq4Sz+MZK\nufiX+rDa+Y8dXir8rZ9/WbvnAk/VooiQEwmPegsjj3POvlm70KXS8ostgFceB7vd\nmOwx7JFnvUPsG38cwWDnF9Of5+XaD6NuNzfEiRRZY3EU1VdQxDNYhhzYpNh0nOuw\niDtCNxTx/HCG7708+an+Gusq+3V8+IZEuzhhHbQ/O5Gm6PkY/GD6ku95UAPlZ/s1\nZH0FQEWIBuGOEs05bGgiLleqYzI+Ej2lNPfF2zlBCzWjdZJFf7e0Jz96KPlYFk3J\nVQPrQ68yW4Z0k+osDmUqE07S+/8gRr3O2zjitPNtdNI+P4YImihL9HWoalEPADCl\nr46HJNQLAgMBAAECggEAPNuhU75WbcYq6cL2NcRcjRoznufT6skyraGwjdLJY+tL\ngSIPbqOcP42wNKR73Ct3BOq+Ls+fVsYzMt3joxZCWg+yNtsMrP1cW9JcMeHqxvHS\nALIkcAlX07F3f07tVYw6VvBo0KVwAydQoEgKFuFvgHpUw/w2OYUcC4lU0lzYdQU9\n8tPYVfBCGfuwltULN71BQDwrRlJ2EFDVafZN5o5C9lN1M6FMKXnVakKIpKqLfznv\nxz+KxXXZlDQCaayltWv243fYavyvj4xCiy7HZz7Wtj00pryVlPp0wfauUVkL2tX0\n9lS7yUqDUl5PiZAoJL+MsuAhKg3NypVyTsQ46Hu/CQKBgQDjTfw+T1wucANrkW8G\nJFVxasmSgK2By7khhIRTz25IE7ruU+9DcOXoNuovIrkzzS1leOlLoUmOG9tM5Jz3\nbJHZJuD3Zen0IzZ0vmmHc/tVBZ+/2q5+3QBzvqgYKURQbQOHMF7LLagcst/UPZED\nBHJpVXbwzi7mfebx8+w4tzCzmQKBgQC7Ly5FowoW/s4gVBFxDnPQ3t4fYCWl/pPI\npAIJuG9QG3eJ0V7eiS99NrbzMbpNnqNYHtGbLlmenufSBsicGv4tVCrcevcQz4LW\n/rvb5k4QtzEEDbKdpj3nIaLB9QiRlXQVqG0j7xcgbFEB6I3vfhdbAFExpE/pJYGW\nbIYD1AhLQwKBgQCGf6/BQv49sCQl81Fppfg0+0Y4/REt21k5XwtZ+ES+O4aB3YKX\nOmegB1Z8+6Pw5fh1sZ0CFnbKsusJzcCfm0uV3a6CVXig8HEZlU4mS1etkH1dbc2Q\n3b6VvnwCh/CXUlojFVkSCnsOOD2/fYqf6XK1p0+Q37/avSb5hicBzEvyCQKBgGTI\nVGueCxKygp0ZZoKuu2Dcfk/6XorvdPZ0h7xgF17USxpjJmc/CdirGvn57ktYfK43\nebfJzur+t+Z3TI/wYKZbSPCJLHlaoSHM6azOZX3OhI+gKGmFVpMZox43JjPseiIn\nGwxb8OG+MCeM5M7r3vtaQl0uEPCBBzLMn6N0CDstAoGABN8zcW6Xj8KgLgWedRtk\n3K4s7YI0y3SsbXhmJ+fkGYMt8gpzGTLLkTFLejZSS2aESH0zOmMTi8MRTSEXVqDC\nJMIFN+0VAhyrcGvaFfk274COoAzJx0+DHsoatlxaEL4hwzTPeUH2XQrXdiOV5b5w\n8vHWTOXmmcHWMmoqOGHppsA=\n-----END PRIVATE KEY-----\n",
  "client_email": "service-plugin-list@polished-bridge-305205.iam.gserviceaccount.com",
  "client_id": "107855304215842093622",
  "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_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/service-plugin-list%40polished-bridge-305205.iam.gserviceaccount.com"
}


Download composer in the current working directory via:

composer require google/apiclient:^2.0