Evernote SDK for PHP
Evernote API version 1.26
Overview
This SDK contains wrapper code used to call the Evernote Cloud API from PHP.
The SDK also contains two samples. The code in sample/client demonstrates the basic use of the SDK for single-user scripts. The code in sample/oauth demonstrates the basic use of the SDK for web applications that authenticate using OAuth.
Prerequisites
This SDK makes use of PHP namespaces, and as such requires PHP 5.3 or later.
In order to use the code in this SDK, you need to obtain an API key from http://dev.evernote.com/documentation/cloud. You'll also find full API documentation on that page.
In order to run the sample code, you need a user account on the sandbox service where you will do your development. Sign up for an account at https://sandbox.evernote.com/Registration.action
In order to run the client sample code, you need a developer token. Get one at https://sandbox.evernote.com/api/DeveloperToken.action
Getting Started - Client
The code in sample/client/EDAMTest.php demonstrates the basics of using the Evernote API, using developer tokens to simplify the authentication process while you're learning.
-
Open sample/client/EDAMTest.php
-
Scroll down and fill in your Evernote developer token.
-
On the command line, run the following command to execute the script:
php EDAMTest.php
Getting Started - OAuth
Web applications must use OAuth to authenticate to the Evernote service. The code in sample/oauth contains a simple web app that demonstrates the OAuth authentication process.
- Open the file sample/oauth/config.php
- Fill in your Evernote API consumer key and secret.
- Deploy the sample/oauth directory to your web server
- Load the web application in your browser (e.g. http://localhost/oauth)
There are two pages in the sample. index.php demonstrates each step of the OAuth process in detail. This is useful for developers, but not what an end user would see. sampleApp.php demonstrates the simplified process, which is similar to what you would implement in your production app.
Getting Started - OAuth with Opauth
-
Install the dependencies
cd sample/oauth_with_opauth
php composer.phar install
-
Install the Strategy
cd sample/oauth_with_opauth/vendor/opauth/opauth/lib/Opauth/Strategy/README.md
git clone git://github.com/evernote/opauth-evernote.git Evernote
-
Open the file sample/oauth_with_opauth/config.php
-
Fill in your Evernote API consumer key and secret.
-
Fill the 'dir' key as follow :
If your url is http://localhost/oauth_with_opauth, path should be set to '/oauth_with_opauth/auth/'
-
Deploy the sample/oauth_with_opauth directory to your web server
-
Load the web application in your browser (e.g. http://localhost/oauth_with_opauth)
Installing SDK using Composer
Using Composer is one of the options to install Evernote SDK for PHP.
-
Add
"evernote/evernote"
as a dependency in your project'scomposer.json
file.{ "require": { "evernote/evernote": "dev-master" } }
-
Download and install Composer.
curl -s "http://getcomposer.org/installer" | php
-
Install your dependencies.
php composer.phar install
-
Require Composer's autoloader by adding the following line to your code's bootstrap process.
require '/path/to/sdk/vendor/autoload.php';
Usage
OAuth
$client = new Evernote\Client(array(
'consumerKey' => 'YOUR CONSUMER KEY',
'consumerSecret' => 'YOUR CONSUMER SECRET'
));
$requestToken = $client->getRequestToken('YOUR CALLBACK URL');
$authorizeUrl = $client->getAuthorizeUrl($requestToken['oauth_token']);
=> https://sandbox.evernote.com/OAuth.action?oauth_token=OAUTH_TOKEN
To obtain the access token
$accessToken = $client->getAccessToken(
$requestToken['oauth_token'],
$requestToken['oauth_token_secret'],
$_GET['oauth_verifier']
);
Now you can make other API calls
$token = $accessToken['oauth_token'];
$client = new Evernote\Client(array('token' => $token));
$noteStore = $client->getNoteStore();
$notebooks = $noteStore->listNotebooks();
UserStore
Once you acquire token, you can use UserStore. For example, if you want to call UserStore.getUser:
$client = new Evernote\Client(array('token' => $token));
$userStore = $client->getUserStore();
$userStore->getUser();
You can omit authenticationToken in the arguments of UserStore/NoteStore functions.
NoteStore
If you want to call NoteStore.listNotebooks:
$noteStore = $client->getNoteStore();
$noteStore->listNotebooks();
NoteStore for linked notebooks
If you want to get tags for linked notebooks:
$linkedNotebooks = $noteStore->listLinkedNotebooks;
$linkedNotebook = $linkedNotebooks[0];
$sharedNoteStore = $client->sharedNoteStore($linkedNotebook);
$sharedNotebook = $sharedNoteStore->getSharedNotebookByAuth();
$sharedNoteStore->listTagsByNotebook($sharedNotebook->notebookGuid);
NoteStore for Business
If you want to get the list of notebooks in your business account:
$businessNoteStore = $client->getBusinessNoteStore();
$businessNoteStore->listNotebooks();