技能 编程开发 Evernote 安装与授权

Evernote 安装与授权

v20260311
evernote-install-auth
指导在 Node.js 或 Python 项目中安装 Evernote SDK、配置开发者 API 密钥,并完成与 Evernote 云 API 的 OAuth 1.0a 授权流程。
获取技能
251 次下载
概览

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
  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

set -euo pipefail
# Node.js
npm install evernote

# Python
pip install evernote

Step 3: Configure Environment

# 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

// 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 - 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

// Step 5a: Get request token and redirect URL
const callbackUrl = 'http://localhost:3000/oauth/callback';  # 3000: 3 seconds in ms

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);
});
// 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');  # HTTP 500 Internal Server Error
      }

      // 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

// 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:
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

Next Steps

After successful auth, proceed to evernote-hello-world for your first note creation.

Examples

Basic usage: Apply evernote install auth to a standard project setup with default configuration options.

Advanced scenario: Customize evernote install auth for production environments with multiple constraints and team-specific requirements.

信息
Category 编程开发
Name evernote-install-auth
版本 v20260311
大小 6.05KB
更新时间 2026-03-12
语言