Используя Blogger API, я хочу опубликовать статью с несколькими метками на PHP. На данный момент статьи публикуются с успехом, но ярлыки не добавляются. Вот мой код:
$blogId = "myBlogId";
$data = array("kind" => "blogger#post", "blog" => array("id" => $blogId), "title" => "test", "content" => "content", "labels" => ["t1", "t2"]);
$data = json_encode($data);
$curlObj = curl_init();
curl_setopt($curlObj, CURLOPT_URL, 'https://www.googleapis.com/blogger/v3/blogs/'.$blogId.'/posts?key='.$myApiKey);
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curlObj, CURLOPT_HEADER, 0);
curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json', 'Authorization: OAuth '.$accessToken));
curl_setopt($curlObj, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($curlObj);
curl_close($curlObj);
Ответ не возвращает ошибку, и сообщение видно в моем Blogger, но без ярлыков. Где ошибка?
Я могу вставить сообщение, используя следующий код.
Прежде всего получить токен доступа, установить токен доступа и затем пройти аутентификацию $client
в the Google_Service_Blogger()
учебный класс.
public function insert_post( $blogId, $postBody ) {
$Blogger = new Google_Service_Blogger( $this->client );
$NewPost = new Google_Service_Blogger_Post();
// set title
if ( isset( $postBody['title'] ) ) {
$NewPost->setTitle( $postBody['title'] );
}
// set content
if ( isset( $postBody['content'] ) ) {
$NewPost->setContent($postBody['content'] );
}
// set labels
if ( isset( $postBody['labels'] ) ) {
$NewPost->setLabels( $postBody['labels'] );
}
$response = [];
try {
$response['post'] = $Blogger->posts->insert( $blogId, $NewPost );
} catch ( Exception $e ) {
$response['error'] = $e;
}
return $response;
}
Других решений пока нет …