๐Ÿ“… let's chat! explore the endless possibilities creating industries that don't exist. click here

evernote-install-auth

Install and configure Evernote SDK and OAuth authentication. Use when setting up a new Evernote integration, configuring API keys, or initializing Evernote in your project. Trigger with phrases like "install evernote", "setup evernote", "evernote auth", "configure evernote API", "evernote oauth". allowed-tools: Read, Write, Edit, Bash(npm:*), Bash(pip:*), Grep version: 1.0.0 license: MIT author: Jeremy Longshore <jeremy@intentsolutions.io>

Allowed Tools

No tools specified

Provided by Plugin

evernote-pack

Claude Code skill pack for Evernote (24 skills)

saas packs v1.0.0
View Plugin

Installation

This skill is included in the evernote-pack plugin:

/plugin install evernote-pack@claude-code-plugins-plus

Click to copy

Instructions

# Evernote Install & Auth ## Overview Set up Evernote SDK and configure OAuth 1.0a authentication for accessing the Evernote Cloud API. ## Prerequisites - Node.js 18+ or Python 3.10+ - Package manager (npm, pnpm, or pip) - Evernote developer account - API key from Evernote Developer Portal (requires approval, allow 5 business days) ## Instructions ### Step 1: Request API Key 1. Go to [Evernote Developer Portal](https://dev.evernote.com/) 2. Request an API key via the contact form 3. Wait for manual approval (up to 5 business days) 4. Receive your `consumerKey` and `consumerSecret` ### Step 2: Install SDK ```bash # Node.js npm install evernote # Python pip install evernote ``` ### Step 3: Configure Environment ```bash # Create .env file cat << 'EOF' >> .env EVERNOTE_CONSUMER_KEY=your-consumer-key EVERNOTE_CONSUMER_SECRET=your-consumer-secret EVERNOTE_SANDBOX=true EOF ``` ### Step 4: Initialize OAuth Client ```javascript // Node.js - Initialize client for OAuth flow const Evernote = require('evernote'); const client = new Evernote.Client({ consumerKey: process.env.EVERNOTE_CONSUMER_KEY, consumerSecret: process.env.EVERNOTE_CONSUMER_SECRET, sandbox: process.env.EVERNOTE_SANDBOX === 'true', china: false }); ``` ```python # Python - Initialize client from evernote.api.client import EvernoteClient client = EvernoteClient( consumer_key='your-consumer-key', consumer_secret='your-consumer-secret', sandbox=True ) ``` ### Step 5: Implement OAuth Flow ```javascript // Step 5a: Get request token and redirect URL const callbackUrl = 'http://localhost:3000/oauth/callback'; client.getRequestToken(callbackUrl, (error, oauthToken, oauthTokenSecret) => { if (error) { console.error('Failed to get request token:', error); return; } // Store tokens in session (required for callback) req.session.oauthToken = oauthToken; req.session.oauthTokenSecret = oauthTokenSecret; // Redirect user to Evernote authorization page const authorizeUrl = client.getAuthorizeUrl(oauthToken); res.redirect(authorizeUrl); }); ``` ```javascript // Step 5b: Handle OAuth callback app.get('/oauth/callback', (req, res) => { const oauthVerifier = req.query.oauth_verifier; client.getAccessToken( req.session.oauthToken, req.session.oauthTokenSecret, oauthVerifier, (error, oauthAccessToken, oauthAccessTokenSecret, results) => { if (error) { console.error('Failed to get access token:', error); return res.status(500).send('Authentication failed'); } // Store access token securely (valid for 1 year by default) req.session.accessToken = oauthAccessToken; // Token expiration included in results.edam_expires console.log('Token expires:', new Date(parseInt(results.edam_expires))); res.redirect('/dashboard'); } ); }); ``` ### Step 6: Verify Connection ```javascript // Create authenticated client and verify const authenticatedClient = new Evernote.Client({ token: req.session.accessToken, sandbox: true }); const userStore = authenticatedClient.getUserStore(); const noteStore = authenticatedClient.getNoteStore(); // Verify connection userStore.getUser().then(user => { console.log('Authenticated as:', user.username); console.log('User ID:', user.id); }).catch(err => { console.error('Authentication verification failed:', err); }); ``` ## Development Tokens (Sandbox Only) For development, you can use a Developer Token instead of full OAuth: 1. Create a sandbox account at https://sandbox.evernote.com 2. Get a Developer Token from https://sandbox.evernote.com/api/DeveloperToken.action 3. Use directly without OAuth flow: ```javascript const client = new Evernote.Client({ token: process.env.EVERNOTE_DEV_TOKEN, sandbox: true }); const noteStore = client.getNoteStore(); ``` **Note:** Developer tokens are currently unavailable for production. Use OAuth for production applications. ## Output - Installed SDK package in node_modules or site-packages - Environment variables configured - Working OAuth flow implementation - Successful connection verification ## Error Handling | Error | Cause | Solution | |-------|-------|----------| | `Invalid consumer key` | Wrong or unapproved key | Verify key from developer portal | | `OAuth signature mismatch` | Incorrect consumer secret | Check secret matches portal | | `Token expired` | Access token > 1 year old | Re-authenticate user via OAuth | | `RATE_LIMIT_REACHED` | Too many API calls | Implement exponential backoff | | `Permission denied` | Insufficient API key permissions | Request additional permissions | ## Token Expiration - Default token validity: **1 year** - Users can reduce to: 1 day, 1 week, or 1 month - Expiration timestamp in `edam_expires` parameter - Implement token refresh before expiration ## Resources - [Evernote Developer Portal](https://dev.evernote.com/) - [OAuth Documentation](https://dev.evernote.com/doc/articles/authentication.php) - [API Key Permissions](https://dev.evernote.com/doc/articles/permissions.php) - [JavaScript SDK](https://github.com/Evernote/evernote-sdk-js) - [Python SDK](https://github.com/Evernote/evernote-sdk-python) ## Next Steps After successful auth, proceed to `evernote-hello-world` for your first note creation.

Skill file: plugins/saas-packs/evernote-pack/skills/evernote-install-auth/SKILL.md