PHP kullanarak Blogger'a Gönderme

2 Cevap php

Ben PHP için Blogger API işe alma sorun yaşıyorum.

What I need is to be able to post a new blogpost to my bloggeraccount. The code I'm using is taken from the Google API page here : http://code.google.com/intl/nl/apis/blogger/docs/1.0/developers%5Fguide%5Fphp.html

İşte benim kod:

<?
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_Query');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');

$user = 'name@example.com';
$pass = 'password';
$service = 'blogger';

$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service, null,
        Zend_Gdata_ClientLogin::DEFAULT_SOURCE, null, null, 
        Zend_Gdata_ClientLogin::CLIENTLOGIN_URI, 'GOOGLE');
$gdClient = new Zend_Gdata($client); 

$blogID = '7973737751295446679';

function createPublishedPost($title='Hello, world!', $content='I am blogging on the internet.')
{
  $uri = 'http://www.blogger.com/feeds/' . $blogID . '/posts/default';
  $entry = $gdClient->newEntry();
  $entry->title = $gdClient->newTitle($title);
  $entry->content = $gdClient->newContent($content);
  $entry->content->setType('text');

  $createdPost = $gdClient->insertEntry($entry, $uri);
  $idText = split('-', $createdPost->id->text);
  $newPostID = $idText[2]; 

  return $newPostID; 
}

createPublishedPost();
?>

Ben alıyorum hatası 'Fatal error: C olmayan bir nesne üzerinde bir üye işlev newentry () Call: \ xampp \ htdocs \ MerhabaDünya \ blogger2.php on line 21' olduğunu

Herkes bana yardımcı ya da bana PHP kullanarak blogger göndermek için nasıl bir çalışma kod örneği verebilir misiniz?

2 Cevap

Sizin $gdClient değişkeni createPublishedPost fonksiyonu dışında intanciated edilir:

$gdClient = new Zend_Gdata($client);

Inside a function, the variables that have been defined outside of it don't exist by default.
About that, you can take a look at the Variable scope page of the manual.

Bu demektir $gdClient işlev içinde yok; bu nedenle, null arasından seçilir; bu yüzden değil, bir nesne - alıyorsanız hata iletisini açıklar.


To check that by yourself, you can use

var_dump($gdClient);

fonksiyonunun başında: Eğer o verilerin ne tür görmek için izin verir; bunu kullanmak isteyen sınıfının bir örneği değilse, bunun iyi bir işaret değil ;-)


You might want to either :

  • createPublishedPost işlevi için bir parametre olarak bu değişken geçmek
  • ya da daha düşük bir değere global inside the function (so the function can "see" the variable as declared outside)

Ilk çözüm bence, muhtemelen temiz biri ;-)


As a sidenote, you might want to configure your error_reporting level (see also), so you get an E_NOTICE when you are using a variable that is not declared -- in this case, you should have gotten one, for instance ;-)
You might also want to enable display_errors, on your development machine, if it's not already on -- seems to be, as you got the Fatal error message

It might seem a bit annoying at the beginning, but, once you get used to it, it is really great : allow to detect that kind of stuff a lot quicker ;-)
And it also helps detect typos in variable names ^^
And it makes you code way cleaner !

Işlevi vücuda $gdClient hareket eden bir şey sabit, ama aynı işlevi vücuda $blogID taşımak zorunda.