Create the post on wordpress.com site using oAuth and Rest API. I have created the posts on https://maheshwaghmare.wordpress.com/?p=4034 using below code.
<?php | |
/** | |
* Create a post on your site WordPress.com using Rest API (oAuth). | |
* I have created the posts on https://maheshwaghmare.wordpress.com/ using below code. | |
* | |
* > How it works? | |
* Using below two fucntion `get_access_key()` and `create_post()` create the post on https://wordpress.com/ | |
* | |
* Function `get_access_key()` get the `access_key` by passing authentication details. | |
* Function `create_post()` create a post by passing `access_key` and `post arguments`. | |
*/ | |
// 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 ); | |
// Step: 2 Set post arguments and pass it create the post. | |
$post_args = array( | |
'title' => 'Hello APAI World', | |
'content' => 'Hello. I am a test post. I was created by the API', | |
'tags' => 'tests', | |
'post_status' => 'draft', | |
'categories' => 'API', | |
); | |
// Create a post with the access key. | |
create_post( $access_key, $post_args ); | |
/** | |
* 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 ); | |
} | |
/** | |
* 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; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment