Last active
September 11, 2018 10:12
-
-
Save maheshwaghmare/84849ebf0c90806b0809b3a5dc15b1c0 to your computer and use it in GitHub Desktop.
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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