Cách khởi tạo và lấy ID của album Picasa bằng PHP CURL

Cách khởi tạo và lấy ID của album Picasa bằng PHP CURL là vấn đề được nhiều lập trình viên quan tâm, bởi những kiến thức trên trường lớp là không đủ, vì vậy bài Cách khởi tạo và lấy ID của album Picasa bằng PHP CURL sẽ chia sẻ tới bạn nhiều thông tin hữu ích

Mọi người vẫn hỏi tôi về việc học lập trình nói chung và PHP nói riêng có cần năng khiếu hay quá khó để tiếp cận hay không. Thì tôi có thể trả lời rằng, học lập trình cũng như việc bạn học tiếng Anh hay bất kỳ một ngôn ngữ khác, bởi lập trình...là ngôn ngữ của máy tính, để máy tính đọc và máy tính thực hiện theo yêu cầu của mình, bạn thích là học được.

Tiếp bước bài viết sử dụng curl để upload hình lên Picasa thì chúng ta sẽ tìm hiểu làm thế nào để tạo một album mới trong picasa, trong bài này chúng ta sẽ sử dụng PHP CURL và có kế thừa hàm login google ở bài trước để thực hiện tạo album trên Picasa.

1. Tại sao phải tạo album khi dùng CURL upload hình lên Picasa

Lý do đơn giản nhất là trong Picasa chỉ cho phép chúng ta upload bao nhiêu hình cho một album, lúc trước là 1000 hình nhưng bây giờ là 2000 hình thì phải. Nên nếu chúng ta gán albumID cố định thì sau khi hết số lượng cho phép sẽ không up thêm được nữa. Lúc này ta phải đăng nhập vào Picasa để tạo album khác và lấy ID của album đó, thật là rườm rà phải không nào. Chính vì vậy Google có cung cấp cho chúng ta API để tạo album và đương nhiên là sẽ có những header thông số cấu hình như tên album, mô tả album kèm theo khi tạo.

Cấu trúc header:

$header = array(
    'Content-Type: application/atom+xml',
    'Authorization:  GoogleLogin auth="' . $key . '"',
    "MIME-Version: 1.0"
); 

Trong đó $key là ID mà google cung cấp khCấu trúc XML:

$rawXml = "<entry xmlns='http://www.w3.org/2005/Atom'
           xmlns:media='http://search.yahoo.com/mrss/'
           xmlns:gphoto='http://schemas.google.com/photos/2007'>
           <title type='text'>$titleAlbum</title>
           <summary type='text'>$descAlbum</summary>
           <gphoto:location>Viet Nam</gphoto:location>
           <gphoto:access>public</gphoto:access>
           <gphoto:timestamp>".time()."</gphoto:timestamp>
           <category scheme='http://schemas.google.com/g/2005#kind'
           term='http://schemas.google.com/photos/2007#album'></category>
           </entry>"; 


  • Trong đó:$titleAlbum: là tiêu đề của album
  • $descAlbum: là mô tả của album
  • time(): là thời gian tạo album

2. Hàm tạo album Picasa sử dụng CURL trong PHP

Bây giờ chúng ta sử dụng CURL và các thông số header, xml ở trên để tạo album, các bước như sau:

  • Đăng nhập google để lấy $key, sau đó gán key vào header
  • Sử dụng CURL truyền các tham số header và xml vào thực thi trả kết quả về.
  • Dựa vào kết quả lấy ID album và sau đó lưu vào nơi lưu trữ

Chi tiết hàm tạo album picasa như sau:

function create_album_picasa($accountID = '', $titleAlbum = 'Tiêu đề album', $descAlbum = 'Tiêu đề album')
{
    $key = login_google();
 
    // Kiểm tra key login
    if (!$key){
        return 'Không thể đăng nhập vào tài khoản Google';
    }
     
    // Cấu trúc XML tạo album
    $rawXml = "<entry xmlns='http://www.w3.org/2005/Atom'
               xmlns:media='http://search.yahoo.com/mrss/'
               xmlns:gphoto='http://schemas.google.com/photos/2007'>
               <title type='text'>$titleAlbum</title>
               <summary type='text'>$descAlbum</summary>
               <gphoto:location>Viet Nam</gphoto:location>
               <gphoto:access>public</gphoto:access>
               <gphoto:timestamp>".time()."</gphoto:timestamp>
               <category scheme='http://schemas.google.com/g/2005#kind'
               term='http://schemas.google.com/photos/2007#album'></category>
               </entry>";
 
    $header = array(
        'Content-Type: application/atom+xml',
        'Authorization:  GoogleLogin auth="' . $key . '"',
        "MIME-Version: 1.0"
    );
     
    // Thiết lập CURL OPTIONS
    $ch = curl_init();  
    curl_setopt($ch, CURLOPT_URL, "https://picasaweb.google.com/data/feed/api/user/$accountID");  
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);  
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);  
    curl_setopt($ch, CURLOPT_POST, true);  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
    curl_setopt($ch, CURLOPT_POSTFIELDS, $rawXml);  
    curl_setopt($ch, CURLOPT_HEADER, true);  
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);  
     
    $ret = curl_exec($ch);
     
    if (preg_match('#<id>.+?albumid/(.+?)</id>#i', $ret, $match)) {
        return $match[1];
    }
    return false;
} 


  • Trong đó các tham số:$accountID là ID của tài khoản hiện tại
  • $titleAlbum là tiêu đề của album
  • $descAlbum là mô tả cho album

Trong hàm tôi có sử dụng hàm login_google() mà ở bài upload hình lên picasa chúng ta đã trình bày, nội dung hàm đó như sau:

function login_google()
{
    // Đăng nhập vào account
    $data = array(
        'accountType'   => 'GOOGLE',  
        'Email'         => 'your_email@gmail.com',  // Email của bạn
        'Passwd'        => 'your_pass',             // Mật khẩu của bạn
        'source'        => __FILE__,  
        'service'       =>'lh2'
    ); 
 
    $ch = curl_init();  
    curl_setopt($ch, CURLOPT_URL, "https://www.google.com/accounts/ClientLogin");  
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);  
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);  
    curl_setopt($ch, CURLOPT_POST, true);  
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1" );
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);  
    $hasil = curl_exec($ch);  
 
    // Kiểm tra kết quả thành công hay thất bại
    // Nếu thành công thì google sẽ trả về đoạn mã có định dạng
    // Auth=key, nên ta lấy key bằng cách sử dụng hàm preg_match
    if (preg_match('#Auth=([a-z0-9_\-]+)#i', $hasil, $match)) 
    {
        return $match[1];
    }
    return false;
} 

Cách sử dụng hàm tạo album picasa

echo create_album_picasa('104078062985748317081', 'tiêu đề album', 'mô tả album');Quá đơn giản phải không nào.

3. Lời kết

Bài này mục đích hướng dẫn bạn tạo và sử dụng hàm tạo album mới picasa sử dụng code PHP để kết hợp với bài trước. Serie này chúng ta sẽ làm đủ ba thao tác đó là upload hình picasa, tạo album picasa, xóa album picasa, sau đó chúng ta kết hợp lại thành một class chuyên xử lý hình trên Picasa để các bạn dễ dàng sử dụng.


Hy vọng với bài viết về Cách khởi tạo và lấy ID của album Picasa bằng PHP CURL đã giải đáp giúp bạn phần nào về kiến thức lập trình PHP. Như tôi đã nói, ngôn ngữ lập trình không quan trọng bằng tư duy giải thuật, tư duy logic để giải quyết vấn đề.

Với những năm trước đây, lập trình viên là một cái nghề khó và kén chọn người học, đồng nghĩa với việc thu nhập hàng tháng của các lập trình viên luôn cao. Còn những năm gần đây, thì lập trình là môn học phổ thông, và ai cũng nên học một ngôn ngữ lập trình nào đó.

Nếu bạn còn bất kỳ câu hỏi nào trong việc học lập trình online, hãy gửi yêu cầu cho tôi qua email hoidapcode.com@gmail.com hoặc để lại comment bên dưới, tôi sẽ giải đáp trong vòng 24 giờ!

Blog hoidapcode.com là blog được tổng hợp tự động các bài học, thông tin về lập trình trên mạng internet. Nếu bạn có ý kiến hoặc đóng góp về bài viết này, hãy liên hệ với tôi!