Thứ Sáu, 24 tháng 8, 2012

Xác nhận dịch vụ google API (cách 1)

Để sử dụng google API, truy cập các dịch vụ của google thông qua code bạn cần phải qua bước google Authentication.
Sản phẩm của Google khá nhiều & hữu ích như: blogger, youtube, google+...
Nếu bạn chưa có tài khoản google, thì đăng ký tại đây.

Quản lý ứng dụng của bạn.
Tạo mới ứng dụng cho tài khoản google của bạn. Nếu bạn chưa có ứng dụng nào, thì nhấn vào create project.


Ngay lập tức bạn được chuyển sang tab service để kích hoạt sử dụng một số dịch vụ mà bạn yêu cầu. Ví dụ, nếu tôi muốn sử dụng ứng dụng dịch thuật (translate) thì tôi nhấn vào biểu tượng off  để kích hoạt.
Chú ý: hiện tại một số dịch vụ, phải gửi mail yêu cầu nhận quyền truy cập API. Ví dụ blogger, bạn không thể tự kích hoạt mà cần xác nhận với google về hình thức sử dụng api, nếu họ đồng ý sẽ gửi mail lại và kích hoạt cho bạn.
Mình đã thử làm rồi, cũng khá đơn giản. Bạn nói là tôi muốn sử dụng để post bài, update bài & xoá bài trên blogger của tôi.

Mẫu: I want to use blogger api, because just i want to create post, update post & delete post, for simple that. Wish you help me active my blogger api on my google console. Thank you !

Để truy cập thông tin tài khoản bạn cần kích hoạt dịch vụ: Google+ API

Sau khi đã tạo ứng dụng, vào tab Api Access --> Create an OAuth 2.0.


Nhập tên ứng dụng, logo của ứng dụng (có thể bỏ trống). Tiếp tục nhấn next, nếu bạn chạy ứng dụng trên web thì chọn web application. Chọn địa chỉ host, nếu bạn chạy thử trên localhost thì gõ localhost. Tiếp tục nhấn Create Client ID.
Bước này để bạn lấy được thông tin: Client ID, client Secret, API key, xem hình dưới:


Bài này mình sử dụng PHP để code.
Xác nhận dịch vụ hay lấy quyền truy cập dữ liệu của người dùng thông qua các bước:
  • Dẫn người dùng đến trang đăng nhập của google.
  • Hiển thị thông tin chi tiết về ứng dụng muốn làm việc trên dữ liệu của bạn.
  • Nếu người dùng đồng ý, thì nhấn vào nút accept.
  • Từ đây, có thể sử dụng được dữ liệu của người dùng, tất nhiên là có giới hạn (Tỉ dụ bạn không thể lấy được thông tin tài khoản để hack).
Code: Khai thác dịch vụ blogger.
<?php
session_start();
//app info
define('CLIENT_ID','698128403568.apps.googleusercontent.com');
define('CLIENT_SECRET','X-DwYYzmUQYJDwL-Uazm9RaO');
define('REDIRECT_URI','http://localhost/1.php');
define('SCOPE','http://www.blogger.com/feeds/');
define('KEY','AIzaSyANioDZczgxD5m8sbEsLNW9Ej6rLeA7MGY');

//curl
//load curl
function curl($url,$header=array(),$opts=array(),$cookie=true,$url_construct=false){
 //init curl
 $ch=($url_construct)? curl_init($url) : curl_init();
 curl_setopt($ch,CURLOPT_URL,$url);
 curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
 curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
 curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
 curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);
 if($cookie!=false){
 curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie);
 curl_setopt($ch,CURLOPT_COOKIEFILE,$cookie);
 }
 if(is_array($header)) curl_setopt($ch,CURLOPT_HTTPHEADER,$header); //set header
 if(is_array($opts)){
  foreach($opts as $opt=>$val){
   curl_setopt($ch,$opt,$val); //set more options
  }
 }
 if(curl_error($ch)) echo curl_error($ch);
 return curl_exec($ch);
}

//auth user
$auth='https://accounts.google.com/o/oauth2/auth?response_type=code&client_id='.CLIENT_ID.'&redirect_uri='.REDIRECT_URI.'&scope='.SCOPE.'&approval_prompt=force';
if(!isset($_GET['code'])){
 header('Location:'.$auth); //get accept from user
}
else{
 //get token
 $token="https://accounts.google.com/o/oauth2/token";
 $data=array(
  'grant_type'=>'authorization_code',
  'code'=>$_GET['code'],
  'client_id'=>CLIENT_ID,
  'client_secret'=>CLIENT_SECRET,
  'redirect_uri'=>REDIRECT_URI
  
  //'access_type'=>'offline'
 );

 $result=curl($token,false,array(CURLOPT_HEADER=>false,CURLOPT_POST=>true,CURLOPT_POSTFIELDS=>http_build_query($data)),'cookie.txt');
 $_SESSION['googletoken-test']=(object)json_decode($result);
}
//ready to use
if(isset($_SESSION['googletoken=test'])){
 //code-here
}
?>
Chú ý:

  • khai báo scope để xác định sử dụng dịch vụ nào của google. Ví dụ: tôi muốn sử dụng blogger api thì khai báo scope là: http://www.blogger.com/feeds/ --> tất nhiên blogger api đã được kích hoạt trong google console của bạn.

Ok Giờ có thể bắt đầu sử dụng google API. Chúc bạn thành công.

2 nhận xét:

 
Copyright © hoangit