Cannot create or update posts using php v3 library ((403) We're sorry, but you don't have permission to access this resource.')
tien nguyen <[email protected]>
| Newsgroups | gmane.comp.web.blogger.api |
|---|---|
| Message-ID | <[email protected]> |
I use the Blogger library v3 for php,I can not insert a new post.
The error message was:
Fatal error: Uncaught exception 'Google_Service_Exception' with message 'Error
calling POST
https://www.googleapis.com/blogger/v3/blogs/3631076204866601722/posts:
(403) We're sorry, but you don't have permission to access this resource.'
in E:\xampp\htdocs\Udemy2Blogger\libs\Google\Http\REST.php:79 Stack trace: #0
E:\xampp\htdocs\Udemy2Blogger\libs\Google\Http\REST.php(44):
Google_Http_REST::decodeHttpResponse(Object(Google_Http_Request)) #1
E:\xampp\htdocs\Udemy2Blogger\libs\Google\Client.php(508):
Google_Http_REST::execute(Object(Google_Client),
Object(Google_Http_Request)) #2
E:\xampp\htdocs\Udemy2Blogger\libs\Google\Service\Resource.php(195):
Google_Client->execute(Object(Google_Http_Request)) #3
E:\xampp\htdocs\Udemy2Blogger\libs\Google\Service\Blogger.php(1495):
Google_Service_Resource->call('insert', Array, 'Google_Service_...') #4
E:\xampp\htdocs\Udemy2Blogger\index.php(78):
Google_Service_Blogger_Posts_Resource->insert('363107620486660...',
Object(Google_Service_Blogger_Post), Array) #5 {main} thrown
inE:\xampp\htdocs\Udemy2Blogger\libs\Google\Http\REST.php on line 79
the code is:
<?php
session_start();
$path = "libs";
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once 'Google/Client.php';
require_once 'Google/Service/Blogger.php';
$blogId = 'xxxxxxxxxxxxxxxxxxxx';
$service_account_name =
'42970721147-m4fcs065rmt3s7qdqqcvnqd1ibt6evlc@developer.gserviceaccount.com'
;
$key_file_location = 'udemy coupon free-e0de16bee449.p12';
$client = new Google_Client();
$client->setAccessType('offline');
$client->setApplicationName("Udemy coupon free");
$bloggerService = new Google_Service_Blogger($client);
/************************************************
If we have an access token, we can carry on.
Otherwise, we'll get one with the help of an
assertion credential. In other examples the list
of scopes was managed by the Client, but here
we have to list them manually. We also supply
the service account
************************************************/
if (isset($_SESSION['service_token'])) {
$client->setAccessToken($_SESSION['service_token']);
}
$key1 = file_get_contents($key_file_location);
$cred = new Google_Auth_AssertionCredentials(
$service_account_name,
array('https://www.googleapis.com/auth/blogger'),
$key1
);
$client->setAssertionCredentials($cred);
if($client->getAuth()->isAccessTokenExpired()) {
$client->getAuth()->refreshTokenWithAssertion($cred);
}
$_SESSION['service_token'] = $client->getAccessToken();
$newpost = new Google_Service_Blogger_Post();
$newpost->setTitle("test");
$newpost->setContent("test content");
$post = $bloggerService->posts->insert($blogId, $newpost, array());
print_r($post);
Enable Blogger Api v3:
<https://lh5.googleusercontent.com/-zacEKdSQnOw/U8qeVmlg8HI/AAAAAAAADxE/XPA_-9jgZ4A/s1600/api.png>
Create client id (service account):
<https://lh3.googleusercontent.com/-A7AYs8TCsAc/U8qgSY1PUkI/AAAAAAAADxc/GXVeJ383Hvw/s1600/service-account.png>
<https://lh3.googleusercontent.com/-_91m5njWaho/U8qfX9wNKPI/AAAAAAAADxQ/5OZiEKPdt30/s1600/createid.png>
Please help me, thanks a lot!
--
You received this message because you are subscribed to the Google Groups "Blogger Developer Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/bloggerdev.
For more options, visit https://groups.google.com/d/optout.