聚會時間公告: 因應COSCUP 2011, Kalug 8月份休會一次

五月 19, 2011

小惡魔AppleBOY
AppleBOY
is about »

tag cloud

» Plurk API 2.0 beta 出來了 (OAuth Core 1.0a)

之前 Plurk 剛推出 API 讓大家可以使用,當時蠻多使用者相繼推出各式語言的支援,像是 php-plurk-api: PHP implementation,而我也將此程式改寫到 CodeIgniter-Plurk-API,然而現在官方又推出了 Plurk API 2.0 beta,不同的是 2.0 用了 OAuth 保護個人隱私,它提供了標準讓開發者可以利用 OAuth 實做任何 application,噗浪官網也希望各位開發者可以儘快將 API 轉成 2.0,當然也是要額外註冊 Plurk App

底下幾點是 API 2.0 跟原來 API 的差異處:

  • Plurk API 2.0 不需要登入作認證,然而原來的 API 是基於 session base 做開發
  • 網址改變,用 http://www.plurk.com/APP/ 取代原來的 http://www.plurk.com/API/
  • 現在每個 Plurk API 2.0 請求都會按照 OAuth Core 1.0a 標準
  • 所有 input/output 參數跟原來都是一樣,只是現在不需要 api_key 在參數里面

大家註冊之後,可以拿到一組 App Key,就可以開始使用了 ^^

Related View

十二月 30, 2009

小惡魔AppleBOY
AppleBOY
is about »

tag cloud

» [PHP Framework] How to implement Plurk API in CodeIgniter

ci_logo2 (by appleboy46)
很開心在12月看到 Plurk Release API 出來,而自己也跟網路上一些朋友合作開發 PHP implementation of Plurk API,Plurk (簡稱噗浪)在台灣這一兩年紅了起來,網路高手分別針對噗浪研究產生非官方的 API,現在官網 Release 出來,提供了 JavaPython 的 Example,我想因為 Plurk 是用 Python 寫出來的,所以提供了範例,但是 API 出來沒多久,roga 就集合了網路一些強者,一起開發了 PHP Plurk API,我也拿了此 API 在實作到 CodeIgniter Framework,讓在使用此套 open source 的使用者可以享用 Plurk API。不過從2009.12.29日之後,Plurk 官網有限制每天只能 call 50.000 次,已經蠻多了,不要操掛 Plurk 的機器阿。

1. 首先下載 CodeIgniter 1.7.2 版本:下載
2. 新增檔案 plurk_config.php 和 plurk_constant.php 到 application/config/ 目錄底下
plurk_config.php 檔案內容如下:

<?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

$config['api_key'] = "xxxxx";
$config['username'] = "xxxxx";
$config['password'] = "xxxxx";

?>

api_key 請到 Plurk API 網站申請,申請過後會寄信到您的信箱,username 是 Plurk 帳號,password 是 Plurk 密碼。
plurk_constant.php
http://github.com/appleboy/CodeIgniter-Plurk-API/blob/master/config/plurk_constant.php

這檔案不需要修改什麼,唯一要注意的是,可以設定 Plurk 的 log 跟 Cookie 檔案位置,目前是存放到 application/logs/ 目錄,如果沒有此目錄,請麻煩建立此資料夾,之後設定 755 讓 Web 可以存取。

define('PLURK_COOKIE_PATH', APPPATH . 'logs/cookie');
define('PLURK_LOG_PATH', APPPATH . 'logs/plurk_log');

3. 新增 Common.php 跟 Plurk.php 檔案到 application/libraries/ 資料夾裡面
Common.php 檔案如下:
http://github.com/appleboy/CodeIgniter-Plurk-API/blob/master/libraries/Common.php
Plurk.php 主程式:
http://github.com/appleboy/CodeIgniter-Plurk-API/blob/master/libraries/Plurk.php

4. 接下來就可以新增 Controller 來測試看看,直接些改 CodeIgniter 所預設的 Welcome Controller

<?php
class Welcome extends Controller {
    function __construct()
    {
        parent::Controller();
        $this->config->load('plurk_config');
        $this->load->library('plurk');

    }
   
    function index()
    {
        $api_key = $this->config->item('api_key');
        $username = $this->config->item('username');
        $password = $this->config->item('password');
        $this->plurk->login($api_key, $username, $password);  
       
        /**
         ******************************************
         * @Get plurks
         *
         * set plurk id = {123, 456, 789}
         ******************************************/

       
        echo "<h1>----- get plurks -----</h1>";
        echo "<pre>";
        print_r($this->plurk->get_plurks());
        echo "</pre>";
       
        /*
        echo "<h1> ----- get someone's plurk ----- </h1>";
        print_r($plurk->get_plurk(123));
       
        echo "<h1> ----- get unread plurks ----- </h1>";
        print_r($plurk->get_unread_plurks());
       
        echo "<h1> ----- mark plurk as read ----- </h1>";
        $plurk->mark_plurk_as_read(array(123,456,789));
       
        echo "<h1> ----- add plurk ----- </h1>";
        $plurk->add_plurk('en', 'says', 'Hello World');
       
        echo "<h1> ----- edit plurk ----- </h1>";
        $plurk->edit_plurk(123, 'be edited');
       
        echo "<h1> ----- delete plurk ----- </h1>";
        $plurk->delete_plurk(123);
       
        echo "<h1> ----- mute plurks ----- </h1>";
        print_r($plurk->mute_plurks(123));
       
        echo "<h1> ----- unmute plurks ----- </h1>";
        print_r($plurk->unmute_plurks(123));
        */

       
        /**
         ******************************************
         * @Get alerts
         *
         ******************************************/

       
        /*
        echo "<h1> ----- get active alerts ----- </h1>";
        print_r($plurk->get_active());
       
        echo "<h1> ----- get a list of past 30 alerts ----- </h1>";
        print_r($plurk->get_history());
       
        echo "<h1> ----- remove notification ----- </h1>";
        $plurk->remove_notification(123);
        */

       
        /**
         ******************************************
         * @Get plurk's responses
         *
         ******************************************/

       
        /*
        echo "<h1> ----- get responses ----- </h1>";
        echo "set plurk id = 123</h1>";
        print_r($plurk->get_responses(123));
       
        echo "<h1> ----- add response ----- </h1>";
        echo "set plurk id = 123</h1>";
        print_r($plurk->add_response(123, 'test response', 'says'));
       
        echo "<h1> ----- delete response ----- </h1>";
        echo "set plurk id = 123, response id = 456</h1>";
        $plurk->delete_response(123, 456);
        */

       
        /**
         ******************************************
         * @Control user
         *
         ******************************************/

       
        /*
        echo "<h1> ----- get own profile ----- </h1>";
        print_r($plurk->get_own_profile());
       
        echo "<h1> ----- get user public profile ----- </h1>";
        echo "set user id = 123</h1>";
        print_r($plurk->get_public_profile(123));
       
        echo "<h1> ----- get user info ----- </h1>";
        print_r($plurk->get_user_info());
       
        echo "<h1> ------ get users friends (nick name and full name)</h1>";
        print_r($plurk->get_completion());
       
        echo "<h1> ----- get block user's list ----- </h1>";
        print_r($plurk->get_blocks());
       
        echo "<h1> ----- block user ----- </h1>";
        $plurk->block_user(5366984);
       
        echo "<h1> ----- unblock user ----- </h1>";
        $plurk->unblock_user(5366984);
        */

       
        /**
         ******************************************
         * @Control friends
         *
         * set user id = 123
         * set friend id = 789
         ******************************************/

       
        /*
        echo "<h1> ----- get someone's friends ----- </h1>";
        print_r($plurk->get_friends(123));
       
        echo "<h1> ----- become someone's friend ----- </h1>";
        $plurk->become_friend(789);
       
        echo "<h1> ----- remove friend ----- </h1>";
        $plurk->remove_friend(789);
       
        echo "<h1> ----- accept friendship request as friend ----- </h1>";
        $plurk->add_as_friend(789);
       
        echo "<h1> ----- accept all friendship requests as friends ----- </h1>";
        $plurk->add_all_as_friends();
       
        echo "<h1> ----- deny friendship ----- </h1>";
        $plurk->deny_friendship(789);
        */

       
        /*
         ******************************************
         * @Control fans
         *
         * set user id = 123
         * set fan id = 789
         ******************************************/

         
        /*
        echo "<h1> ----- get following ----- </h1>";
        print_r($plurk->get_following());
       
        echo "<h1> ----- get someone's fans ----- </h1>";
        print_r($plurk->get_fans(123));
       
        echo "<h1> ----- become someone's fan ----- </h1>";
        $plurk->become_fan(5366983);
       
        echo "<h1> ----- accept a friendship request as fan ----- </h1>";
        plurk->add_as_fan(789);
       
        echo "<h1> ----- accept all friendship requests as fans ----- </h1>";
        $plurk->add_all_as_fan();
        */

       
        /* can't use */
        //echo "<h1> ----- set user following ----- </h1>";
        //echo "user id = 789</h1>";
        //echo ($plurk->set_following(3440147, $follow = FALSE)) ? 'success' : 'disable';
       
       
        /*
         ******************************************
         * @Search
         *
         ******************************************/

       
        /*
        echo "<h1> ----- search plurk ----- </h1>";
        print_r($plurk->search_plurk('php-plurk-api'));
       
        echo "<h1> ----- search user ----- </h1>";
        print_r($plurk->search_user('roga lin'));
       
        echo "<h1> ----- get emoticons ----- </h1>";
        print_r($plurk->get_emoticons());
        */

       
       
        /*
         ******************************************
         * @Clique
         *
         ******************************************/

       
        /*
        echo "<h1> ----- get clique list ----- </h1>";
        print_r($plurk->get_cliques());
       
        echo "<h1> ----- create a clique ----- </h1>";
        print_r($plurk->create_clique("test"));
       
        echo "<h1> ----- rename clique ----- </h1>";
        print_r($plurk->rename_clique("test","test1"));
       
        echo "<h1> ----- get clique ----- </h1>";
        print_r($plurk->get_clique('test1'));
       
        echo "<h1> ----- add a user to a clique ----- </h1>";
        print_r($plurk->add_to_clique("test1", 3440147));
       
        echo "<h1> ----- remove a user from a clique ----- </h1>";
        print_r($plurk->remove_from_clique("test1", 3440147));
       
        echo "<h1> ----- delete a clique ----- </h1>";
        print_r($plurk->delete_clique("test1"));  
        */
     
    }
}
/* End of file welcome.php */
/* Location: ./system/application/controllers/welcome.php */

底下載入相關設定以及 Plurk Library,當然也可以設定在 application/config/autoload.php 裡面喔

$this->config->load('plurk_config');
$this->load->library('plurk');

這樣就算是安裝成功了,大家可以試試看,如果需要程式碼,可以到 CodeIgniter-Plurk-API 下載完整的程式碼

INSTALLATION

Download all file from this site.

$ http://github.com/appleboy/CodeIgniter-Plurk-API/archives/master
$ git clone git://github.com/appleboy/CodeIgniter-Plurk-API.git

Copy some files into directory.

$ copy config/plurk_config.php your_application/config/
$ copy config/plurk_constant.php your_application/config/
$ copy libraries/Common.php your_application/libraries/
$ copy libraries/Plurk.php your_application/libraries/

Create logs directory, and chmod 755 directory

$ mkdir your_application/logs
$ chmod 755 your_application/logs
$ chown www:www your_application/logs

Edit config/plurk_config.php, and configure your api key, plurk username, and plurk password

$config['api_key'] = "xxxxx";
$config['username'] = "xxxxx";
$config['password'] = "xxxxx";

Test your controller file: welcome.php

http://localhost/welcome

Related View

十二月 24, 2009

小惡魔AppleBOY
AppleBOY
is about »

tag cloud

» [PHP] Release 噗浪 php-plurk-api 1.2 Beta.

Plurk 官網在2009年12月4日提供了 API platform,這是大家所期待很久的,裡面只有提供 PythonJava 的 example 範例,所以強者我朋友 roga 發起了 php-plurk-api 架構,來造福 PHP 使用者,當初在 roga 在 plurk 上面徵求是否有人想要一起開發程式,我就當場報名了,後來也陸續多了很多強者好友:WhatupChrisLiuLimit…等加入進行模組撰寫,很快的就產出了 php-plurk-api 1.2 Beta,也利用官方網站 API 來撰寫註解,然後搭配 phpDocumentor 產出文件,這一切都集結了很多人的努力,也讓官方網站放上了大家共同結晶。

如果大家想使用,可以從 php-plurk-api source code. 下載。^^

其他延伸:
Release: php-plurk-api 1.2 Beta.
php-plurk-api website.

Related View

support:

biggo.com.tw

A Django site.