137 lines
		
	
	
		
			No EOL
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			137 lines
		
	
	
		
			No EOL
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Zoho OAuth Setup Instructions
 | |
| 
 | |
| ## Prerequisites
 | |
| 
 | |
| - Zoho CRM account
 | |
| - Admin access to create OAuth applications
 | |
| - Access to staging server terminal
 | |
| 
 | |
| ## Step 1: Create Zoho OAuth Application
 | |
| 
 | |
| 1. Go to [Zoho API Console](https://api-console.zoho.com/)
 | |
| 2. Click "Add Client" or "Create New Client"
 | |
| 3. Choose "Web Based" application type
 | |
| 4. Fill in the details:
 | |
|    - **Client Name**: HVAC Community Events
 | |
|    - **Homepage URL**: https://upskillhvac.com
 | |
|    - **Authorized Redirect URIs**: http://localhost:8080/callback
 | |
|    - **Description**: WordPress integration for HVAC event management
 | |
| 
 | |
| 5. Click "Create" and save the credentials:
 | |
|    - Client ID
 | |
|    - Client Secret
 | |
| 
 | |
| ## Step 2: Configure Environment Variables
 | |
| 
 | |
| Add to your `.env` file:
 | |
| ```
 | |
| ZOHO_CLIENT_ID=your_client_id_here
 | |
| ZOHO_CLIENT_SECRET=your_client_secret_here
 | |
| ```
 | |
| 
 | |
| ## Step 3: Run OAuth Setup
 | |
| 
 | |
| From your terminal:
 | |
| 
 | |
| ```bash
 | |
| cd /Users/ben/dev/upskill-event-manager/wordpress-dev
 | |
| ./bin/zoho-setup-complete.sh
 | |
| ```
 | |
| 
 | |
| This script will:
 | |
| 1. Start a local callback server
 | |
| 2. Generate the authorization URL
 | |
| 3. Open your browser for Zoho login
 | |
| 4. Handle the OAuth callback
 | |
| 5. Save the tokens
 | |
| 
 | |
| ## Step 4: Complete Authorization
 | |
| 
 | |
| 1. When the browser opens, log in to Zoho
 | |
| 2. Review the permissions requested:
 | |
|    - CRM Settings access
 | |
|    - CRM Modules access  
 | |
|    - CRM Users access
 | |
|    - CRM Organization access
 | |
| 3. Click "Accept" or "Allow"
 | |
| 4. You'll be redirected to localhost:8080/callback
 | |
| 5. Copy the authorization code from the page
 | |
| 6. Return to terminal and paste the code
 | |
| 
 | |
| ## Step 5: Verify Setup
 | |
| 
 | |
| The script will:
 | |
| - Exchange the code for tokens
 | |
| - Test the connection
 | |
| - Save configuration to `zoho-config.php`
 | |
| - Display success message
 | |
| 
 | |
| ## Manual Setup (Alternative)
 | |
| 
 | |
| If the automated script doesn't work:
 | |
| 
 | |
| 1. Start callback server:
 | |
| ```bash
 | |
| cd wordpress/wp-content/plugins/hvac-community-events/includes/zoho
 | |
| php -S localhost:8080 callback-server.php
 | |
| ```
 | |
| 
 | |
| 2. Generate authorization URL:
 | |
| ```bash
 | |
| php test-integration.php
 | |
| ```
 | |
| 
 | |
| 3. Open the URL in your browser
 | |
| 4. Complete authorization
 | |
| 5. Copy the code and paste when prompted
 | |
| 
 | |
| ## Testing the Integration
 | |
| 
 | |
| After setup, test on staging:
 | |
| 
 | |
| 1. Go to WordPress Admin
 | |
| 2. Navigate to HVAC Community Events → Zoho CRM Sync
 | |
| 3. Click "Test Connection"
 | |
| 4. In staging mode, you'll see simulation results only
 | |
| 
 | |
| ## Troubleshooting
 | |
| 
 | |
| ### Common Issues
 | |
| 
 | |
| 1. **"Client authentication failed"**
 | |
|    - Double-check Client ID and Secret
 | |
|    - Ensure no extra spaces in .env file
 | |
| 
 | |
| 2. **"Invalid redirect URI"**
 | |
|    - Make sure redirect URI in Zoho matches exactly: http://localhost:8080/callback
 | |
|    - No trailing slash
 | |
| 
 | |
| 3. **Connection refused on localhost:8080**
 | |
|    - Ensure no other service is using port 8080
 | |
|    - Try a different port if needed
 | |
| 
 | |
| 4. **Token expired**
 | |
|    - Tokens auto-refresh, but if issues persist, re-run setup
 | |
| 
 | |
| ### Debug Mode
 | |
| 
 | |
| Enable debug logging:
 | |
| ```php
 | |
| define('ZOHO_DEBUG_MODE', true);
 | |
| define('ZOHO_LOG_FILE', '/path/to/debug.log');
 | |
| ```
 | |
| 
 | |
| ## Security Notes
 | |
| 
 | |
| - Never commit .env or zoho-config.php to version control
 | |
| - Tokens are stored encrypted in WordPress options
 | |
| - Refresh tokens are used for long-term access
 | |
| - Staging mode prevents accidental production syncs
 | |
| 
 | |
| ## Support
 | |
| 
 | |
| For issues:
 | |
| 1. Check debug logs
 | |
| 2. Verify OAuth application settings
 | |
| 3. Review Zoho API documentation
 | |
| 4. Contact development team |