upskill-event-manager/wordpress-dev/bin/setup-zoho-credentials.php
bengizmo 0d55020273 feat: Add Zoho CRM diagnostic and setup tools
- Added setup-zoho-credentials.php script to help generate OAuth credentials
- Added check-permissions.php tool to diagnose file access issues
- Updated diagnostics system to better identify common problems
- Added detailed steps for setting up Zoho CRM integration

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-21 11:22:25 -03:00

125 lines
No EOL
4.1 KiB
PHP

<?php
/**
* Zoho CRM Credentials Setup Script
*
* This script helps you generate the Zoho CRM credentials needed for the integration.
* Run this script on your staging server to complete the OAuth flow and obtain a refresh token.
*
* Usage: php setup-zoho-credentials.php
*/
echo "\n=== Zoho CRM Credentials Setup ===\n\n";
// Get user input
echo "Step 1: Enter your Zoho CRM OAuth Application details\n";
echo "------------------------------------------------\n";
echo "These can be created at https://api-console.zoho.com/\n\n";
echo "Enter your Client ID: ";
$client_id = trim(fgets(STDIN));
echo "Enter your Client Secret: ";
$client_secret = trim(fgets(STDIN));
// Validate input
if (empty($client_id) || empty($client_secret)) {
die("Error: Client ID and Client Secret are required.\n");
}
// Set staging server redirect URI
$staging_url = "https://wordpress-974670-5399585.cloudwaysapps.com";
$redirect_uri = "$staging_url/oauth/callback";
echo "\nUsing redirect URI: $redirect_uri\n";
echo "Make sure this URL is added to your Zoho OAuth application's authorized redirect URIs.\n";
// Generate authorization URL
$auth_url = "https://accounts.zoho.com/oauth/v2/auth?" . http_build_query([
'scope' => 'ZohoCRM.settings.all,ZohoCRM.modules.all,ZohoCRM.users.all,ZohoCRM.org.all',
'client_id' => $client_id,
'response_type' => 'code',
'access_type' => 'offline',
'redirect_uri' => $redirect_uri,
'prompt' => 'consent'
]);
echo "\nStep 2: Authorization\n";
echo "-------------------\n";
echo "Open this URL in your browser:\n\n";
echo "$auth_url\n\n";
echo "After authorization, you'll be redirected to:\n";
echo "$redirect_uri?code=YOUR_AUTH_CODE\n\n";
echo "Enter the authorization code from the URL: ";
$auth_code = trim(fgets(STDIN));
if (empty($auth_code)) {
die("Error: Authorization code is required.\n");
}
// Exchange code for tokens
echo "\nStep 3: Exchanging code for tokens...\n";
echo "-----------------------------------\n";
$token_url = 'https://accounts.zoho.com/oauth/v2/token';
$token_params = [
'grant_type' => 'authorization_code',
'client_id' => $client_id,
'client_secret' => $client_secret,
'redirect_uri' => $redirect_uri,
'code' => $auth_code
];
// Use cURL to make the request
$ch = curl_init($token_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($token_params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($http_code !== 200) {
echo "Error: Failed to get tokens (HTTP $http_code)\n";
echo "Response: " . $response . "\n";
exit(1);
}
$token_data = json_decode($response, true);
if (!isset($token_data['access_token']) || !isset($token_data['refresh_token'])) {
echo "Error: Invalid token response\n";
echo "Response: " . $response . "\n";
exit(1);
}
// Success! Display the values
echo "✓ Tokens received successfully!\n\n";
echo "Here are your Zoho CRM credentials:\n";
echo "--------------------------------\n";
echo "Client ID: $client_id\n";
echo "Client Secret: $client_secret\n";
echo "Refresh Token: " . $token_data['refresh_token'] . "\n\n";
// Generate wp-config.php code
echo "Add these lines to your wp-config.php file:\n";
echo "----------------------------------------\n";
echo "define('ZOHO_CLIENT_ID', '$client_id');\n";
echo "define('ZOHO_CLIENT_SECRET', '$client_secret');\n";
echo "define('ZOHO_REFRESH_TOKEN', '" . $token_data['refresh_token'] . "');\n";
echo "define('ZOHO_DIAGNOSTICS_ENABLED', true);\n\n";
// Generate environment variables setup
echo "Or set these environment variables in your .env file:\n";
echo "-----------------------------------------------\n";
echo "ZOHO_CLIENT_ID=$client_id\n";
echo "ZOHO_CLIENT_SECRET=$client_secret\n";
echo "ZOHO_REFRESH_TOKEN=" . $token_data['refresh_token'] . "\n\n";
echo "To verify your setup, run the diagnostics script:\n";
echo "--------------------------------------------\n";
echo "$staging_url/wp-content/plugins/hvac-community-events/includes/zoho/diagnostics.php?run_diagnostics=true\n\n";
echo "=== Setup Complete! ===\n";