https://github.com/automattic/wpcom.js
WordPress.com JavaScript API client designed for Node.js and browsers
https://github.com/automattic/wpcom.js
Last synced: 4 months ago
JSON representation
WordPress.com JavaScript API client designed for Node.js and browsers
- Host: GitHub
- URL: https://github.com/automattic/wpcom.js
- Owner: Automattic
- License: mit
- Archived: true
- Created: 2014-01-30T21:08:58.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2020-02-19T08:54:43.000Z (almost 6 years ago)
- Last Synced: 2025-09-11T05:46:42.808Z (4 months ago)
- Language: JavaScript
- Homepage: http://wpcomjs.com/
- Size: 2.98 MB
- Stars: 654
- Watchers: 140
- Forks: 54
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Changelog: History.md
- License: LICENSE
Awesome Lists containing this project
README
# This repository has moved!
It is now part of the [Calypso](https://github.com/Automattic/wp-calypso/tree/master/packages/wpcom.js) repository.
The published npm package will continue to be available as before, no changes necessary!
wpcom.js
========
Official JavaScript library for the [WordPress.com][] [REST API][].
Compatible with Node.js and web browsers.
[](https://circleci.com/gh/Automattic/wpcom.js)
## How to use
### Node.js
Introduce the `wpcom` dependency into your `package.json` ...
```cli
npm install --save wpcom
```
... and then initialize it with your API token ([optional](#authentication)).
```js
// Edit a post on a site
var wpcom = require( 'wpcom' )( '' );
wpcom
.site( 'your-blog.wordpress.com' )
.postsList( { number: 8 } )
.then( list => { ... } )
.catch( error => { ... } );
```
### Browser
Include `dist/wpcom.js`.
```html
var wpcom = WPCOM( '<your-token>' );
var blog = wpcom.site( 'your-blog.wordpress.com' );
blog.postsList( { number: 8 } )
.then( list => { ... } )
.catch( error => { ... } );
```
### Authentication
Not all requests require a REST API token. For example, listing posts on a
public site is something anyone can do.
If you do need a token, here are some links that will help you generate one:
- [OAuth2 Authentication]( https://developer.wordpress.com/docs/oauth2/)
at WordPress.com Developer Resources
- [`wpcom-oauth-cors`]( https://github.com/Automattic/wpcom-oauth-cors ):
a client-side WordPress.com OAuth2 library using CORS
- [`wpcom-oauth`]( https://github.com/Automattic/node-wpcom-oauth ):
a server-side ( Node.js ) WordPress.com OAuth2 library
- If you just want to quickly create a token, the
[example app bundled with `wpcom-oauth`]( https://github.com/Automattic/node-wpcom-oauth/tree/master/example )
is probably the easiest way.
## API
* [WPCOM](./docs/wpcom.md )
* [WPCOM#Req](./docs/wpcom.req.md ) - Direct requests to WordPress REST-API
* [Me](./docs/me.md )
* [Site](./docs/site.md )
* [Post](./docs/post.md )
* [Media](./docs/media.md )
* [Users](./docs/users.md )
## Examples
```js
// Edit a post on a site
var wpcom = require( 'wpcom' )( '' );
var blog = wpcom.site( 'your-blog.wordpress.com' );
blog.post( { slug: 'a-post-slug' } ).update( data )
.then( res => { ... } )
.catch( err => { ... } );
```
You can omit the API token for operations that don't require permissions:
```js
// List the last 8 posts on a site
var wpcom = require( 'wpcom' )();
var blog = wpcom.site( 'your-blog.wordpress.com' );
blog.postsList( { number: 8 } )
.then( list => { ... } )
.catch( error => { ... } );
```
More pre-made examples are in the [`examples/`](./examples/) directory.
## Test
The `token` and `site` vars must be given to testing scripts either using
`TOKEN` and `SITE` environment vars respectively or through of a
config.json file into `test/` folder like bellow:
```json
{
"site": "",
"token": ""
}
```
Run tests:
```cli
$ make test-all
```
Also tests can be filtered using `make test FILTER=`:
```cli
$ make test FILTER=wpcom.site.post
```
## License
MIT – Copyright 2014 Automattic
[Node.js]: http://nodejs.org
[REST API]: http://developer.wordpress.com/docs/api
[WordPress.com]: http://www.wordpress.com
[node-wpcom-oauth]: https://github.com/Automattic/node-wpcom-oauth