クライアント http 認証を使用してブロガーに投稿する PHP スクリプトを取得する際に問題が発生しています。
https://developers.google.com/blogger/docs/1.0/developers_guide_phpのチュートリアルに従いました
これが私のコードです:
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_Query');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
$user = 'myuserid';
$pass = 'mypassword';
$blogUrl = 'myblog.blogspot.com';
$service = 'blogger';
$gdClient = new Zend_Gdata($client);
$blogID = getBlogId($gdClient, 'http://'.$blogUrl.'/feeds/posts/default');
$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service, null,
Zend_Gdata_ClientLogin::DEFAULT_SOURCE, null, null,
Zend_Gdata_ClientLogin::CLIENTLOGIN_URI, 'GOOGLE');
function createPublishedPost($gdClient, $myBlogId, $title='Hello, world!', $content='I am blogging on the internet.')
{
$uri = 'https://www.blogger.com/feeds/' . $myBlogId . '/posts/default';
echo $uri; // nothing wrongs here.
$entry = $gdClient->newEntry();
$entry->title = $gdClient->newTitle($title);
$entry->content = $gdClient->newContent($content);
$entry->content->setType('text');
$createdPost = $gdClient->insertEntry($entry, $uri); // I think the error is here.
$idText = split('-', $createdPost->id->text);
$newPostID = $idText[2];
return $newPostID;
}
function getBlogId($gdClient, $feed)
{
$gdClient = new Zend_Gdata($client);
$query = new Zend_Gdata_Query($feed);
$feed = $gdClient->getFeed($query);
preg_match('/blog-([0-9]+)/', $feed->id->text, $match);
if (isset($match[1]))
{
return $match[1];
}
return false;
}
createPublishedPost($gdClient, $blogID);
エラーメッセージは次のとおりです。
Fatal error: Uncaught exception 'Zend_Gdata_App_HttpException' with message 'Expected response code 200, got 401 User does not have permission to create new post' in /home/content/36/9549036/html/[MYUSER]/Zend/Gdata/App.php:714 Stack trace: #0 /home/content/36/9549036/html/[MYUSER]/Zend/Gdata.php(221): Zend_Gdata_App->performHttpRequest('POST', 'https://www.blo...', Array, '<atom:entry xml...', 'application/ato...', NULL) #1 /home/content/36/9549036/html/[MYUSER]/Zend/Gdata/App.php(905): Zend_Gdata->performHttpRequest('POST', 'https://www.blo...', Array, '<atom:entry xml...', 'application/ato...') #2 /home/content/36/9549036/html/[MYUSER]/Zend/Gdata/App.php(980): Zend_Gdata_App->post(Object(Zend_Gdata_Entry), 'https://www.blo...', NULL, NULL, Array) #3 /home/content/36/9549036/html/[MYUSER]/test.php(29): Zend_Gdata_App->insertEntry(Object(Zend_Gdata_Entry), 'https://www.blo...') #4 /home/content/36/9549036/html/[MYUSER]/test.php(49): createPublishedPost(Object(Zend_Gdata), '[MYBLOGID]...') #5 {main} thrown in /home/content/36/9549036/html/[MYUSER]/Zend/Gdata/App.php on line 714
誰もこれを経験したことがありますか?PHP でブロガーを投稿するコードはありますか?