This is how to create a blogpost using the Google Client Library for PHP.
To setup:
- Go to https://console.developers.google.com
- Add an project, and tap "Credentials"
- Tap "Create data" and create an Client-ID OAuth
- Choose the "Webapp" and enter the path to your server in the "Authorized diversion URIs" textbox
- Hit "Create", and hit OK
- Click on the Client-ID you just generated
- Click "Download JSON"
- Download the file, and rename it to
client_secret.json
Use this script to create and publish posts. Make sure to first enter the path to your client_secret.json
.
<?php
// This script creates a post
// Made by Robin Boers
// load Google Api
require_once '../api/vendor/autoload.php';
session_start();
$redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
// Authenticate user with OAuth
$client = new Google_Client();
$client->setAuthConfig('/path/to/client_secret.json');
$client->setApplicationName('Example App');
$client->setRedirectUri($redirect_uri);
$client->setScopes(array('https://www.googleapis.com/auth/blogger'));
if (!isset($_SESSION['access_token']) && isset($_GET['code'])) {
$client->authenticate($_GET['code']);
$access_token = $client->getAccessToken();
$_SESSION['access_token'] = $access_token;
}
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
// First set the accesstoken
$client->setAccessToken($_SESSION['access_token']);
$blogger = new Google_Service_Blogger($client);
// Get blog information
$blog = $blogger->blogs->getByUrl('http://stupidstuffwastaken.blogspot.com'); // Replace this URI with your blog's URI
$blogId = $blog->getId();
$blogName = $blog->getName();
$postId = "651261343944639929"; // If you want to update a post
// Creating post
$mypost = new Google_Service_Blogger_Post();
$mypost->setTitle("Example heading");
$mypost->setContent("Lorem ipsum dolor sit amet, consectetur adipiscing elit.");
$data = $blogger->posts->insert($blogId, $mypost); // or update post like this: $data = $blogger->posts->update($blogId, $postId, $mypost);
var_dump($data);
}
?>