杜馬蓋地 滿出來的五天之旅 DAY1 住宿,潛水篇

這次到杜馬蓋地找的是Diveworx這家潛水店,是當地的菲律賓人開的

因為有人覺得其他外國人開的潛店對亞洲人比較沒那麼友善

加上蠻多認識的人都是來這家,就決定給他訂下去了

他住宿的是Rrivate Residence Vip Resort,Glenn本身沒有經營住宿的部分

繼續閱讀 杜馬蓋地 滿出來的五天之旅 DAY1 住宿,潛水篇 →

Flickr API 教學

最近剛好有用到Flickr API

來做個紀錄以免自己以後忘了

首先你必須有一組Flicker帳號…廢話…

然後在這裡 http://www.flickr.com/services/apps/create/apply/ 申請一個API Key

接下來就可以開始呼叫API了

所有API的用法可以參考 http://www.flickr.com/services/api/

下面讓我來舉個例子

 

首先在寫程式之前可以先做個小測試確定你的KEY跟API是活著的

直接在網頁輸入以下網址測試 http://www.flickr.com/services/rest/?method=flickr.photosets.getInfo&format=php_serial&photoset_id=相片集的編號&api_key=我的APIKEY

送出之後網頁就會把API呼叫的值回傳如下

a:2:{s:8:"photoset";a:16:{s:2:"id";s:17:"72157602138543609";s:5:"owner";s:12:"35663569@N00";s:7:"primary";s:10:"1430638617";s:6:"secret";s:10:"84ec9d1936";s:6:"server";s:4:"1063";s:4:"farm";d:2;s:6:"photos";i:135;s:11:"count_views";s:3:"542";s:14:"count_comments";s:1:"0";s:12:"count_photos";s:3:"135";s:12:"count_videos";i:0;s:5:"title";a:1:{s:8:"_content";s:22:"PARKⅡ‧映相巴黎";}s:11:"description";a:1:{s:8:"_content";s:0:"";}s:11:"can_comment";i:0;s:11:"date_create";s:10:"1190610982";s:11:"date_update";s:10:"1316530838";}s:4:"stat";s:2:"ok";}

這是JSON的結構

基本上回你很長一串就是你語法沒填錯了,或是你也可以檢查最後面的stat=’OK’

像我用PHP的話可以用 unserialize() 來把JSON解開成陣列

這樣就可以方便的抓到傳回的元素了

 

設定上相片集設成公開就可以抓到了

另外別忘了Flicker的條款規定頁面上要放回到Flickr的連結

以下的程式是用來抓Flickr相片集的封面

可以簡單的參考一下

$link 是相片集的連結

 

function getflckrset($link)
{
    global $FLICKRKEY;
    $setid = substr($link,strpos($link,’sets/’)+5);
    $setid = str_replace(‘/’,",$setid);
    
    //get photo
    $params = array(
        ‘api_key’    => $FLICKRKEY,
        ‘method’    => ‘flickr.photosets.getPhotos’,
        ‘photoset_id’    => $setid ,
        ‘format’    => ‘php_serial’
    );
    
    $encoded_params = array();
    foreach ($params as $k => $v)
        $encoded_params[] = urlencode($k).’=’.urlencode($v);
    $url = “http://api.flickr.com/services/rest/?".implode(‘&’, $encoded_params);
    $rsp = file_get_contents($url);
    $rsp_obj = unserialize($rsp);        //parser JSON formate
    
    $imgname = $rsp_obj[‘photoset’][‘photo’][0][‘id’].’_’.$rsp_obj[‘photoset’][‘photo’][0][‘secret’].’.jpg’;
    
    //get server
    $params = array(
        ‘api_key’    => $FLICKRKEY,
        ‘method’    => ‘flickr.photosets.getInfo’,
        ‘photoset_id’    => $setid ,
        ‘format’    => ‘php_serial’
    );
    
    $encoded_params = array();
    foreach ($params as $k => $v)
        $encoded_params[] = urlencode($k).’=’.urlencode($v);
    $url = “http://api.flickr.com/services/rest/?".implode(‘&’, $encoded_params);
    $rsp = file_get_contents($url);
    $rsp_obj = unserialize($rsp);
    
    $farm = $rsp_obj[‘photoset’][‘farm’];
    $server = $rsp_obj[‘photoset’][‘server’];
    
    $imgurl = ‘http://farm’.$farm.’.staticflickr.com/’.$server.’/’.$imgname;
    return $imgurl;
}

我的水底攝影裝備 XZ-1 PT-050 YS-01

很久沒發潛水方面的文了

來分享一下我的水攝裝備

117730434-DSC_5113.JPG.jpg    

目前使用的相機是O家今年新出的XZ-1

搭配原廠的防水殼PT-050

外閃是去年敗下去的 sea&sea YS-01

接下來看圖說故事…

 

 

首先這是合體的樣子

相機本體與閃燈用光纖線連結觸閃

相機殼沒有熱靴孔,可以有效防止去買更高檔閃燈的慾望

117730446-LIF_1674.JPG.jpg

 

 

 

閃燈模式有slave、master、S-TTL

右邊可以調整閃燈出力

 117730450-LIF_1684.JPG.jpg

 

 

 

前面左邊黑色孔是接光纖線的

右邊是給好野人另外再串接一台閃燈

中間是對焦燈,夜潛可以用來當手電筒~ㄎㄎ

 117730454-LIF_1686.JPG.jpg

 

 

 

相機的背面,所有按鈕都有對應到

OK見跑到旁邊會稍稍不順手,多潛就習慣了!!

 117730460-LIF_1688.JPG.jpg

 

 

 

頭殼照

黑色殼看起來比較厲害?

 117730468-LIF_1695.JPG.jpg

 

 

 

跟以前都不太一樣的扣具

是用旋轉加上卡榫的方式

我想優點是不容易因為碰撞而繃開

但耐用度就有待時間的考驗了(恩….白色就是卡鹽…)

 117730474-LIF_1696.JPG.jpg

 

 

 

相機塞進去之前要先把閃燈跳出來

這個殼閃燈沒有對應的開關

另外下水前oring都要仔細的檢查並上一層薄薄的矽油

 117730484-LIF_1698.JPG.jpg

 

 

 

每次潛完回家就必須全部拆開

還包含了燈臂蛇腹管頭尾的兩根螺絲跟墊片

海水很可怕,不想裝備壞掉就要勤勞點

 117730488-LIF_1700.JPG.jpg  

 

 

目前拍照的習慣

我會用光圈先決模式把光圈定在4~5左右

內閃設定1/64出力,閃燈用手動調整出力

這樣一來可以觸閃又不會太耗電,外閃根據拍攝物的遠近大約出力調在一半左右

不打閃燈的時候1.8光圈就很好用囉~

 

附上幾張以這個組合拍的照片

拍攝地點都在東北角一帶

有裁切沒修圖(懶~)

117985930-P8202221.JPG.jpg

 117985932-P8202226.JPG.jpg

 117985934-P8202233.JPG.jpg

 117985942-P6181365.JPG.jpg

 117985944-P7301953.JPG.jpg

 117985954-P7301973.JPG.jpg

 117985962-P7301975.JPG.jpg  

使用ZEND 呼叫GOOGLA API 取得GMAIL連絡人資料

GOOGLE上就有提供各種程式語言的範例

googleapicode  

直接抓回來用就可以了

 

因為幸運的找到有前輩寫的PHP範例

所以也省的研究了

直接試試看囉

請參考 http://i.laoer.com/grab-google-contacts-by-google-api.html

 

頁面上會有一個連結

Click here to authorize this application.

點下去以後會到GOOGLE頁面取得授權

apiauth.jpg  

 

授予權限之後就會把連絡人丟回來了

ex:

Email: turtlemt@gmail.com
Email: xxxxxxx@gmail.com…….

就醬子…

基本上都是人家寫好的東西

沒什麼很困難的地方

 

網站使用GOOGLE API的前置作業

網站使用GOOGLE API的前置作業

googleapi   

先去註冊帳號

http://code.google.com/intl/zh-TW/apis/accounts/

首先你必須有個google的帳號(不註冊又要用人家東西不是很超過嗎)

再來到domain管理的地方新增你要使用的web目標

也就是你的網域

https://www.google.com/accounts/ManageDomains

接下來要去做認證網域的所有權

也就是說你要想GOOGLE證明你是該網域的擁有者

一般的作法是從GOOGLE下載一個驗證檔擺到你的網站上

再按下驗證的按鈕

 

驗證完以後

會要你輸入一個網址

是取得權限token以後要回去的網址

填好以後就可以測試一下了

比方說這是我要取得token的連結

https://www.google.com/accounts/AuthSubRequest?next=http%3A%2F%2Fwww.example.com.tw%2Fauthsub%2Fprefix&scope=http%3A%2F%2Fwww.google.com%2Fcalendar%2Ffeeds%2F&session=1&secure=0&hd=default

 

其中參數的定義

取得權限的網址 https://www.google.com/accounts/AuthSubRequest?

取得以後要導到哪裡(也就是你方在GOOGLE設定的路徑) next=http%3A%2F%2Fwww.example.com.tw%2Fauthsub%2Fprefix

你要向GOOGLE取得什麼服務 scope=http%3A%2F%2Fwww.google.com%2Fcalendar%2Ffeeds%2F

其他參數我沒什研究

可以到這邊自行查找一下 http://code.google.com/intl/zh-CN/apis/accounts/docs/AuthSub.html#AuthSubRequest

 

設好之後丟出去就可以取得token如下

http://www.example.com.tw/authsub/prefix?token=1%2Fpm7GRAool9xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

等等在繼續研究實作上的應用