2010-01-12 50 views

回答

-1
$blog = "sleeptalkinman.blogger.com"; 

$username = split('\.', $blog)[0]; 

只要你有像上面這樣的網址,就會給你你想要的。

+0

好,那你必須呼應' $ username [0]',因爲'$ username'將會是一個數組... – ceejayoz 2010-01-12 21:37:42

+0

你是對的,我的[0]以某種方式失蹤了。編輯修復。 – KingRadical 2010-01-12 22:22:40

2

(我發佈了一個原始的答案,但修改它使用Zend_Gdata代替)。

以下是獲取博客ID的方法。

<?php 

$user = 'username'; 
$pass = 'password'; 

// I have to admit, I would normally use the autoloader 
require_once 'Zend/Loader.php'; 
Zend_Loader::loadClass('Zend_Gdata'); 
Zend_Loader::loadClass('Zend_Gdata_Query'); 
Zend_Loader::loadClass('Zend_Gdata_ClientLogin'); 
Zend_Loader::loadClass('Zend_Gdata_Feed'); 

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

/** 
* Get the blog ID 
* @param string $feed URL to blog feed or blog name 
* Example: 
* - http://googleblog.blogspot.com/feeds/posts/default 
*/ 
function getBlogId($gdClient, $feed) 
{ 
    // You could build the /feed/posts/default part yourself and just pass 
    // googleblog.blogspot.com: 
    // $feed = 'http://' . $feed . '/feeds/posts/default'; 
    $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; 
} 

echo getBlogId($gdClient, 'http://sleeptalkinman.blogspot.com/feeds/posts/default'); 

原來的答覆

如果你想獲取信息,那麼你應該僅僅是能夠取代www.blogger.com部分而忽略blogID。例如,如果你想找到http://dailyvim.blogspot.com/所有帖子可以使用:

http://dailyvim.blogspot.com/feeds/posts/default

而不是普通的URL,http://www.blogger.com/feeds/[blogID]/posts/default

這種方法還可以用於發佈到博客上工作,所以只要經過身份驗證的用戶具有對其的寫入權限即可。不過,我還沒有能夠測試這個。

獲取博客ID

您可以從進料獲得上述使用下面的博客ID:

$content = file_get_contents('http://sleeptalkinman.blogspot.com/feeds/posts/default'); 
preg_match('/<id>.*blog-([0-9]+)</id>/U', $content, $match); 
print $match[1]; // Prints the blog ID 

獲取後的ID爲最新的帖子

你也可以從上述Feed中獲取最新帖子(這次我將使用SimpleXML代替):

$feed = simplexml_load_file('http://sleeptalkinman.blogspot.com/feeds/posts/default'); 
foreach ($feed->entry as $entry) 
{ 
    // I'm getting both the blog ID and post ID 
    preg_match('/blog-([0-9]+).*post-([0-9]+)/', $entry->id, $match); 
    print $match[2]; 

    // Now you can use the following URL with the blogger API 
    $comment_feed_url = 'http://www.blogger.com/feeds/' . $match[1] . '/' . $match[2] . '/comments/default'; 
} 
+0

謝謝,但我問什麼是一個更大的問題,我想檢索特定帖子的評論feed的步驟。再舉一個例子! http://www.blogger.com/feeds/3117168333067506122/5498538184176328230/comments/default 所以真的很喜歡從第一個參數中檢索博客ID,然後發佈第二個ID。 – joobaal 2010-01-12 21:48:00

+0

那麼,您可以輕鬆地從Feed中獲取博客ID。我使用代碼編輯了我的原始答案。 – 2010-01-12 22:26:00

+0

是的,我可以做到這一點,但我想避免加載頁面,我只是在尋找Blogger API函數來返回它。 – joobaal 2010-01-12 22:41:20

-1

似乎你也可以使用博客的網址來獲得評論,試試;

http://someusername.blogspot.com/feeds/comments/default

,你可以得到在類似的方式給定後,即/供稿/ XXXXXXXX /評論/默認情況下,其中xxxxxxxx是後ID的所有評論。

而且你可以按日期通過查詢字符串資格發表分鐘= 2010-03-16T00:00:00 &發表-MAX = 2010-03-24T23:59:59

作爲一個邊請注意,Blogger API可以將此Feed作爲JSON而不是XML返回,這比通過使用查詢字符串解析XML更容易處理?alt = json

+0

噢,JSON格式在http://code.google.com/apis/gdata/docs/json.html – 2010-09-18 01:56:08

3

今天,最新的博客API版本是3.0。有了這個新的API,我們可以獲得資源類型爲getByUrl的博客ID。這是用我的博客,我的API完整的例子:

https://www.googleapis.com/blogger/v3/blogs/byurl?url=http%3A%2F%2Fwww.ifaniqbal.com&key=AIzaSyDNkR52eSfObZi9BPKrTytbowOAM7Js9uY 

只需按Ctrl + C這個例子和Ctrl + V到瀏覽器來測試。一個例子的回報場的是「ID」字段,這是我們想要的(在JSON)的博客ID,像這樣:

{ 
"kind": "blogger#blog", 
"id": "7107469463017369923", 
"name": "Ifan Iqbal", 
"description": "Tips, Download, Resensi, Tutorial, Blog, Blogspot", 
"published": "2012-02-28T23:54:48+07:00", 
"updated": "2013-07-11T16:24:58+07:00", 
"url": "http://www.ifaniqbal.com/", 
"selfLink": "https://www.googleapis.com/blogger/v3/blogs/7107469463017369923", 
"posts": { 
"totalItems": 161, 
"selfLink": "https://www.googleapis.com/blogger/v3/blogs/7107469463017369923/posts" 
}, 
"pages": { 
"totalItems": 2, 
"selfLink": "https://www.googleapis.com/blogger/v3/blogs/7107469463017369923/pages" 
}, 
"locale": { 
"language": "in", 
"country": "", 
"variant": "" 
} 

}

+0

中有描述這裏有一個指向文檔的鏈接:https://developers.google.com/blogger/docs /3.0/using#retrieving-a-blog-by-its-url – Dunc 2016-01-28 14:16:13