
Evernote Install Auth
- 46 installs
- 2.6k repo stars
- Updated August 5, 2026
- jeremylongshore/claude-code-plugins-plus-skills
Install the Evernote SDK and set up OAuth 1.0a authentication to connect a project to the Evernote Cloud API.
About
Installs the Evernote SDK and configures OAuth 1.0a authentication and API keys for the Evernote Cloud API. A developer uses it when starting a new Evernote integration.
- Covers API key provisioning, SDK install, and OAuth flow
- Includes sandbox developer-token quickstart and connection verification
Evernote Install Auth by the numbers
- 46 all-time installs (skills.sh)
- Ranked #3,254 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/jeremylongshore/claude-code-plugins-plus-skills --skill evernote-install-authAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 46 |
|---|---|
| repo stars | ★ 2.6k |
| Last updated | August 5, 2026 |
| Repository | jeremylongshore/claude-code-plugins-plus-skills ↗ |
What it does
Install the Evernote SDK and set up OAuth 1.0a authentication to connect a project to the Evernote Cloud API.
Files
Evernote Install & Auth
Overview
Set up the Evernote SDK and configure OAuth 1.0a authentication for accessing the Evernote Cloud API. Covers API key provisioning, SDK installation, OAuth flow implementation, and connection verification.
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 an API Key
1. Navigate to the Evernote developer portal 2. Submit the API key request form 3. Wait for manual approval (up to 5 business days) 4. Receive consumerKey and consumerSecret credentials
Step 2: Install the SDK
set -euo pipefail
# Node.js
npm install evernote
# Python
pip install evernoteStep 3: Configure Environment Variables
cat << 'EOF' >> .env
EVERNOTE_CONSUMER_KEY=your-consumer-key
EVERNOTE_CONSUMER_SECRET=your-consumer-secret
EVERNOTE_SANDBOX=true
EOFStep 4: Initialize the OAuth Client
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
});Step 5: Implement the OAuth Flow
Set up request token acquisition, user authorization redirect, and callback handling. Alternatively, use a developer token for sandbox testing to skip the OAuth flow entirely.
Step 6: Verify the Connection
Create an authenticated client, access getUserStore(), and call getUser() to confirm authentication succeeds.
For the complete OAuth callback implementation, developer token setup, Python client initialization, and token expiration handling, see OAuth flow reference.
Output
- Installed SDK package in node_modules or site-packages
- Environment variables configured for authentication
- Working OAuth flow implementation
- Successful connection verification
Error Handling
| Error | Cause | Resolution |
|---|---|---|
| Invalid consumer key | Wrong or unapproved key | Verify key in the developer portal |
| OAuth signature mismatch | Incorrect consumer secret | Check secret matches the portal value |
| Token expired | Access token older than 1 year | Re-authenticate the user via OAuth |
| Rate limit reached | Too many API calls | Implement exponential backoff |
| Permission denied | Insufficient API key scope | Request additional permissions |
Examples
Sandbox quickstart: Obtain a developer token from sandbox.evernote.com/api/DeveloperToken.action. Set EVERNOTE_DEV_TOKEN in .env and initialize the client with sandbox: true to skip the full OAuth flow during development.
Production OAuth: Request an API key from the developer portal, implement the OAuth 1.0a flow with an HTTPS callback URL, store the access token securely alongside its edam_expires timestamp, and schedule token refresh before expiration.
Resources
Next Steps
After successful auth, proceed to evernote-hello-world for the first note creation.
Evernote OAuth Flow Implementation
Step-by-Step OAuth 1.0a Flow
Get Request Token and Redirect
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);
});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');
}
);
});Verify Authenticated Connection
const authenticatedClient = new Evernote.Client({
token: req.session.accessToken,
sandbox: true
});
const userStore = authenticatedClient.getUserStore();
const noteStore = authenticatedClient.getNoteStore();
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, use a Developer Token instead of the full OAuth flow:
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:
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 the full OAuth flow for production applications.
Python OAuth Client
from evernote.api.client import EvernoteClient
client = EvernoteClient(
consumer_key='your-consumer-key',
consumer_secret='your-consumer-secret',
sandbox=True
)Token Expiration Reference
- Default token validity: 1 year
- Users can reduce to: 1 day, 1 week, or 1 month
- Expiration timestamp in
edam_expiresparameter - Implement token refresh before expiration