OAuth Information
https://developer.wordpress.com/apps/73691
Copy Client ID 73691
Client Secret JGSUmvoQRnlFCJzYdTY8UWdVnRkCBmlHl7Bz338WaRHCLDMDxUVthCDW675ln7TS
Redirect URLs https://www.google.com
Javascript Origins
Type Web
Request token URL https://public-api.wordpress.com/oauth2/token
Authorize URL https://public-api.wordpress.com/oauth2/authorize
Authenticate URL https://public-api.wordpress.com/oauth2/authenticate
Working on Rest API and OAuth is very interesting.
WordPress merged Rest API support into the core in WordPress 4.7 “Vaughan” check out the Rest API Merge Proposal .
In this post, I’m creating the post on my site https://maheshwaghmare.com/ though rest API and OAuth.
Top ↑
#Step 1: Step 1:
Create new app wordpress.com app from https://developer.wordpress.com/apps/new/
OR
Do you already have an app then select existing app from https://developer.wordpress.com/apps/
Top ↑
#Step 2: Step 2:
Copy below code and add your app authentication details. After adding details you get and auth key.
Copy // Step: 1 Add authentication details to get auth key.
$auth_args = array(
'username' => '',
'password' => '',
'client_id' => '',
'client_secret' => '',
'grant_type' => 'password', // Keep this as it is.
);
$access_key = get_access_key( $auth_args );Full Screen
Note: Keep grant_type
as password
. Its required!
username
– Your website username.
password
– Your website password.
client_id
– Your App client ID.
client_id
– Your App client ID.
Top ↑
#Step 3: Step 3:
Use below function which return the auth key from your given app details.
Copy /**
* Get Access Key.
*
* @param array $args Auth arguments.
* @return mixed Auth response.
*/
function get_access_key( $args ) {
// Access Token.
$curl = curl_init( 'https://public-api.wordpress.com/oauth2/token' );
curl_setopt( $curl, CURLOPT_POST, true );
curl_setopt( $curl, CURLOPT_POSTFIELDS, $args );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1);
$auth = curl_exec( $curl );
$auth = json_decode($auth);
// Access Key.
return $auth->access_token;
}Full Screen
Top ↑
#Step 4: Step 4:
Add your new post details. Such as post title, post content etc. like below:
Copy // Step: 2 Set post arguments and pass it create the post.
$post_args = array(
'title' => 'Hello APA World',
'content' => 'Hello. I am a test post. I was created by the API',
'tags' => 'tests',
'post_status' => 'draft',
'categories' => 'API',
);Full Screen
Top ↑
#Step 5: Step 5:
Now, Simply call a function and pass the Auth key and post arguments.
Copy // Create a post with the access key.
create_post( $access_key, $post_args );Full Screen
Top ↑
#Step 6: Step 6:
Copy /**
* Create post with access key.
*
* @param string $access_key Access key.
* @param array $post_args Post arguments.
* @return mixed Post response.
*/
function create_post( $access_key, $post_args )
{
$options = array (
'http' => array(
'ignore_errors' => true,
'method' => 'POST',
'header' => array(
0 => 'authorization: Bearer ' . $access_key,
1 => 'Content-Type: application/x-www-form-urlencoded',
),
'content' => http_build_query( $post_args ),
),
);
$context = stream_context_create( $options );
$response = file_get_contents(
'https://public-api.wordpress.com/rest/v1/sites/YOURSITEID/posts/new/',
false,
$context
);
return json_decode( $response );
}Full Screen
Here,
https://public-api.wordpress.com/rest/v1/sites/ YOURSITEID /posts/new/
Replace YOURSITEID with your wordpress.com site ID.
To get it follow below quick simple steps:
Add string /me/sites
and select method GET
It’ll show all your sites from WordPress.com. Check the below screenshot for reference.