Epeydir günlüğümü karalamıyordum.Geçen gün blogger.com için poster yazdım onu sizle paylaşayım.
Google api'si kullanarak yazmak istediğiniz yazıyı yayınlayabilirsiniz.
Yazıyı gönderirken verileri utf-8 olarak göndermelisiniz.Onun içinde class'ın içinde dil diye bir fonksiyon yazdım
Gelen veriyi ISO-8859-9'dan UTF-8'e çeviriyor tabi bunu sizin tetiklemeniz gerekiyor.
<?php
/*
Kodlama By s4l1h
http://pehepe.blogspot.com/
Alıntı yaparken kaynak gösterirseniz, bu sizin emeğe saygınız olduğunu gösterir.
*/
//Class Kodları Başlıyor.................
class blogger{
// Türkçe Karekterleri UTF-8 Çevirmek için
function cevir($gel){
if($this->dil==1){ $gel=iconv("ISO-8859-9", "UTF-8", $gel); }
return $gel;
}
// XML Oluşturuyoruz
function olustur($ad,$etiket,$icerik){
$ad=$this->cevir($ad);
$icerik=$this->cevir($icerik);
$xml="<entry xmlns='http://www.w3.org/2005/Atom'>
<title type='text'>$ad</title>
<content type='xhtml'>
<div xmlns=\"http://www.w3.org/1999/xhtml\">".$icerik."</div>
</content>";
foreach($etiket as $liz0){
$liz0=$this->cevir($liz0);
$xml.='<category scheme="http://www.blogger.com/atom/ns#" term="'.$liz0.'" />';
}
$xml.="</entry>";
return $xml;
}
function user($a){
return $this->kullanici=$a;
}
function pass($a){
return $this->sifre=$a;
}
function no($a){
return $this->id=$a;
}
function dil($a){
return $this->dil=$a;
}
// Giriş Yapıyoruz
function tokenal(){
$ch3 = curl_init();
curl_setopt($ch3, CURLOPT_URL, 'https://www.google.com/accounts/ClientLogin');
curl_setopt($ch3, CURLOPT_POSTFIELDS,"Email=$this->kullanici&Passwd=$this->sifre&accountType=GOOGLE&service=blogger&source=curlbaglan");
curl_setopt($ch3, CURLOPT_POST, 1);
curl_setopt($ch3, CURLOPT_HEADER, 0);
curl_setopt($ch3, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch3, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch3, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3");
curl_setopt($ch3, CURLOPT_RETURNTRANSFER, 1);
$finish = curl_exec($ch3);
$a=explode("Auth=",$finish);
$x=trim($a[1]);
return $this->token=$x;
}
function token(){
$this->tokenal();
return $this->token;
}
// Gönderiyoruz.
function yaz($konu,$etiket,$icerik){
$this->token();
$xml=$this->olustur($konu,$etiket,$icerik);
$s=strlen($xml);
$header[]="Content-Type: application/atom+xml";
$header[]="Content-length: $s";
$header[]="Authorization: GoogleLogin auth=$this->token";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.blogger.com/feeds/'.$this->id.'/posts/default');
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$sonuc = curl_exec($ch);
if(strpos($sonuc,"Error") OR strpos($sonuc,"The element")){
return "Hata OLUŞTU<br/>".$sonuc;
}else{
return 'Gönderme Başarılı\r\n';
//echo $sonuc;
}
}
}
//Class Kodları Bitiyor.................
/*
Örnek Bir Kullanım Aşşağıdaki Gibidir.
Öncelikle kullanıcı adı,şifre ve blogid yazalım
blogger.com girip hesabınızdan blogidi alabilirsiniz.
*/
$kullanici = "xxxxxxxxx@gmail.com"; // Mail adresiniz
$sifre = "xxx"; // Şifreniz
$id = "6492861835614290907"; // Blog id
$konu="Blogger Post Denemesi"; // Yazı Başlığı
/*
Etiketler array olmalıdır aşağıdaki gibi
*/
$etiket[]="php";
$etiket[]="blogger";
$etiket[]="pehepe";
$etiket[]="s4l1h";
/*
Yazının içeriği
*/
$icerik="Blogger Poster Denemesi<br/>http://pehepe.blogspot.com/<br/>";
/*
Blogger'e post etmek için
*/
$blog=& new blogger; // Class'ı kullanmaya başlıyoruz
$blog->user($kullanici); // Kullanacı adı
$blog->pass($sifre); //Şifre
$blog->no($id); // Blog No
$blog->dil(1); //Yolladığımız Türkçe veriyi UTF-8'e çevirmesini istiyoruz.
echo $blog->yaz($konu,$etiket,$icerik); // Son olarak Gönderiyoruz
?>
Dilerseniz class'ı ve örneğini buradan indirebilirsiniz.
Unutmadan eklemek istediğim bir kaç şey var bu class ile toplam 50 yazı gönderebilirsiniz 50 yazıdan sonra
resim doğrulaması ister sizden toplamda günlük 350 ( tam emin değilim bu sayıdan) yazı limiti var günlük.
15 yorum:
birde şu sql injection hakkında bir makale yazarsanız yada iyi bir kaynak önerirseniz oldukça şık olur. mysql_real_escape_string ile girileni filtrele çıktı olarakda htmlentities kullan demek dışında tabi :p
başarılar...
Güzel olmuş salih abi.bu noktada sınıf yapısının çok işe yaradığını görüyoruz ..
dostum şu rewrite olayınıda anlatırmısın. ama kafatası kalın olanlar için anlat benim gibiler için. şu php ye yeni başladım.
birçok yeri aştım bu kaldı. aklım beynim basmıyor. bu düzenli ifadelerde de bir cinlik var ama anlamıyorum işte.
peheçbi koder
Token invalid
Error 401
alıyorum nedir sorun ?
S.a Usta Görüşmek İsterim Senle Th3_Pow3r@msn.com Eklersen
çalışmıyo:S
Hata OLUŞTU
Token invalid
Error 401
Sizde neden sorun veriyor anlayamadım
http://bloggerpostdeneme.blogspot.com/
paylaştığım betik ile yukarıdaki adresteki postları atmıştım 50 mesaj sonra güvenlik kodu doğrulaması istemişti
Şu sıralar breaking captcha ile uğraşıyorum.
Merhaba .. ben bunu kullanıyorum ama hiçbir etkisi yok maalesef. :( .. Gönderme başarılı diyor fakat bloga bakıyorum yazı yok :S
Sanırım çalıştıramıyanlardaki temel sorun Captcha'yı pasifleştirmeniz gerek.
https://www.google.com/accounts/DisplayUnlockCaptcha
Başlangıç için okunması lazım.
http://code.google.com/intl/tr-TR/apis/accounts/docs/AuthForInstalledApps.html
Teşekkürler efenim sorunsuz çalışıyor... Allah razı olsun.
Salih hocam,
bende güzel çalışıyor, emeğin ve paylaşımın için teşekkür ederim.
Bir başka class daha buldum onda her birşey yapmak mümkün silme gönderme felan denemedim, çünkü senin kodları kendime uyarladım tek eksiğim kaldı,
post atarken resimde göndermek isiyorum, a href="" img src= şeklinde bağlantıya sahip resimde yollamak istiyorum ama olmuyor.
bunu nasıl çalıştıracaz ? nereleri editlememiz gerekli ?
ya kardes iyide bu kodları nasıl kullanmamız lazım anlayamadım anlatabilirsen sevinirim.
Size a'yı b'ye böl diye anlatamam bu sizin yaratıcılığınızı azminizi körertir zaten kodu anlayamadıysanız boşuna kullanmayın anlayamadığın kodu sisteminize eklemeyin kullanmayın sizin için söylüyorum bunları.
@@serkan
resim eklemek isteyince hata vermesinin sebebi büyük ihtimal xhtml'ye uyumlu yollamıyorsun yazıyı img tagının sonu böyle olmalı />
hocam bu şekilde yaının içine resim ekleyip bloggere upload ettirebilirmiyiz ? oluyorsa nasıl yarımcı olurmusunuz pls.
Yorum Gönder